Cómo comenzar rápidamente con VUE3.0: ingrese al aprendizaje.
Hoy, cuando estaba aprendiendo Node
descubrí que setHeader y writeHead en Node/http
son muy similares. ¡Ambos pueden configurar encabezados de respuesta!
Parámetros
respuesta.setHeader(nombre, valor)Copiar código
http.ServerResponse
devuelve el objeto de respuestay
establece un único atributo para el encabezado de respuesta.
Tenga en cuenta que
TypeError
.Ejemplo de
respuesta.setHeader('Content-Type', 'text/html')
respuesta setHeader('Set-Cookie', ['type=ninja', 'language=javascript'])
establece repetidamente un atributo
// devuelve tipo de contenido = text/html1. respuesta.setHeader('Tipo de contenido', 'texto/html') respuesta.setHeader('Tipo de contenido', 'texto/html1')
parámetro
respuesta.writeHead(statusCode, [statusMessage], [headers])
statusCode código de estado http
statusMessage mensaje de estado (opcional)
encabezados atributo objeto o matriz (opcional)
devolver http.ServerResponse
devolver objeto de respuesta |
La función
es la misma que la setHeader
Tenga en cuenta
que se pueden configurar varias propiedades. setHeader solo puede configurar una
y solo se puede llamar una vez.
Debe llamarse antes response.end()
que se establezca el nombre o valor del campo de propiedad que no es válido
Los caracteres provocarán que se genere TypeError
.
Ejemplo
porque writeHead devuelve Es un objeto ServerResponse, podemos realizar llamadas en cadena
const body = 'hello world'; respuesta .writeHead(200, { 'Longitud del contenido': Buffer.byteLength(cuerpo), 'Tipo de contenido': 'texto/sin formato' }) .end(body);
la longitud del contenido aquí está en bytes, no en caracteres. Buffer.byteLength() se utiliza para determinar la longitud del texto.
Nodejs no comprobará si Content-Length es coherente con la longitud del texto transmitido.
// Devuelve tipo de contenido = texto/plain. servidor constante = http.createServer((req, res) => { res.setHeader('Tipo de contenido', 'texto/html'); res.setHeader('X-Foo', 'barra'); res.writeHead(200, { 'Tipo de contenido': 'texto/sin formato' }); res.end('ok'); });
writeHead
tiene una prioridad más alta que setHeader
, y writeHead solo se puede llamar una vez, por lo que al llamar, primero considere qué encabezados no cambian con frecuencia y luego llame writeHead
Si se ha llamado setHeader
para configurar el encabezado, entonces lo hará. páselo a writeHead
merge
Si se llama a este método y no se ha llamado response.setHeader()
, el valor del encabezado proporcionado se escribirá directamente en el canal de red y no se almacenará en caché internamente. response.getHeader()
) en el encabezado no produce los resultados esperados. Si es necesario completar el encabezado de forma incremental y potencialmente recuperarlo y modificarlo en el futuro, utilice response.setHeader()
en su lugar.
setHeader solo puede configurar encabezados uno por uno, writeHead puede configurar muchos
setHeaders a la vez y se puede llamar repetidamente. writeHead solo se puede llamar una vez, y
setHeader y writeHead aparecerán al mismo tiempo. setHeader se fusionará en writeHead. writeHead tiene una alta prioridad.
writeHead puede configurar códigos de estado e información de estado, no se puede configurar setHeader, solo se puede configurar el encabezado.