Cara cepat memulai VUE3.0: Masuk ke pembelajaran.
Hari ini ketika saya mempelajari Node
saya menemukan bahwa setHeader dan writeHead di Node/http
sangat mirip. Keduanya dapat mengatur header respons.
parameter
respon.setHeader(nama, nilai)Salin kode
http.ServerResponse
mengembalikan objek responsdan
menetapkan atribut tunggal untuk header respons.
Perhatikan bahwa
Namaatau nilai bidang properti yang berisi karakter yang
tidak
TypeError
dilempar.'teks/html')
. setHeader('Set-Cookie', ['type=ninja', 'bahasa=javascript'])
berulang kali menyetel atribut
// mengembalikan tipe konten = teks/html1 respon.setHeader('Jenis Konten', 'teks/html') respon.setHeader('Jenis Konten', 'teks/html1')
parameter
respon.writeHead(statusCode, [statusMessage], [header])
statusCode http kode status
statusMessage pesan status (opsional)
header atribut objek atau larik (opsional)
mengembalikan objek respons pengembalian http.ServerResponse
Fungsinya
sama dengan setHeader
Perhatikan
bahwa beberapa properti dapat disetel. setHeader hanya dapat menyetel satu
dan
hanya dapat dipanggil satu kali.
Itu harus dipanggil sebelum response.end()
karakter akan menyebabkan TypeError
dilempar.
Contoh
karena writeHead mengembalikan Ini adalah objek ServerResponse, kita dapat membuat panggilan berantai
const body = 'hello world'; tanggapan .writeHead(200, { 'Panjang Konten': Buffer.byteLength(body), 'Jenis Konten': 'teks/polos' }) .end(body);
Panjang Konten di sini dalam byte, bukan karakter. Buffer.byteLength() digunakan untuk menentukan panjang teks.
Nodejs tidak akan memeriksa apakah Content-Length konsisten dengan panjang teks yang dikirimkan.
// Kembalikan content-type = text/plain const server = http.createServer((req, res) => { res.setHeader('Jenis Konten', 'teks/html'); res.setHeader('X-Foo', 'bar'); res.writeHead(200, { 'Jenis Konten': 'teks/polos' }); res.end('ok'); });
writeHead
memiliki prioritas lebih tinggi daripada setHeader
, dan writeHead hanya dapat dipanggil satu kali, jadi saat memanggil, pertimbangkan dulu header mana yang tidak sering berubah, lalu panggil writeHead
Jika setHeader
telah dipanggil untuk menyetel header, maka dia akan melakukannya teruskan ke writeHead
merge
Jika metode ini dipanggil dan response.setHeader()
belum dipanggil), nilai header yang diberikan akan ditulis langsung ke saluran jaringan dan tidak akan di-cache secara internal. response.getHeader()
) pada header tidak memberikan hasil yang diharapkan. Jika header perlu diisi secara bertahap dan berpotensi diambil serta diubah di masa mendatang, gunakan response.setHeader()
sebagai gantinya.
setHeader hanya dapat menyetel header satu per satu, writeHead dapat menyetel banyak
setHeaders sekaligus, dan dapat dipanggil berulang kali. writeHead hanya dapat dipanggil satu kali, dan
setHeader serta writeHead muncul secara bersamaan writeHead memiliki prioritas tinggi.
writeHead dapat mengatur kode status dan informasi status, setHeader tidak dapat diatur, hanya header yang dapat diatur