Como começar rapidamente com VUE3.0: Entre no aprendizado.
Hoje, quando eu estava aprendendo Node
descobri que setHeader e writeHead em Node/http
são muito semelhantes. Ambos podem definir cabeçalhos de resposta.
Parâmetros
response.setHeader(nome, valor)Copiar código
http.ServerResponse
retorna o objeto de respostae
define um único atributo para o cabeçalho de resposta.
Observe que
Definir
uma
TypeError
seja lançado.'text/html')
response. setHeader('Set-Cookie', ['type=ninja', 'language=javascript'])
define repetidamente um atributo
// retorna content-type = text/html1 resposta.setHeader('Tipo de conteúdo', 'texto/html') resposta.setHeader('Tipo de conteúdo', 'texto/html1')
parâmetro
resposta.writeHead (statusCode, [statusMessage], [cabeçalhos])
statusCode código de status http
statusMessage mensagem de status (opcional)
cabeçalhos objeto de atributo ou matriz (opcional)
retornar http.ServerResponse
objeto de resposta de retorno |
A função
é a mesma setHeader
Observe
que várias propriedades podem ser definidas. setHeader só pode definir uma
e só pode ser chamada uma vez.
Ela deve ser chamada antes response.end()
definir o nome ou valor do campo de propriedade que contém inválido
caracteres farão com que TypeError
seja lançado.
Exemplo
porque writeHead retorna É um objeto ServerResponse, podemos fazer chamadas em cadeia
const body = 'hello world'; resposta .writeHead(200, { 'Comprimento do conteúdo': Buffer.byteLength (corpo), 'Tipo de conteúdo': 'texto/simples' }) .end(body);
Content-Length aqui está em bytes, não em caracteres. Buffer.byteLength() é usado para determinar o comprimento do texto.
Nodejs não verificará se Content-Length é consistente com o comprimento do texto transmitido
// Retorna content-type = text/plain. servidor const = http.createServer((req, res) => { res.setHeader('Tipo de conteúdo', 'texto/html'); res.setHeader('X-Foo', 'barra'); res.writeHead(200, { 'Tipo de conteúdo': 'texto/simples' }); res.end('ok'); });
writeHead
tem uma prioridade mais alta que setHeader
e writeHead só pode ser chamado uma vez, portanto, ao chamar, primeiro considere quais cabeçalhos não mudam com frequência e, em seguida, chame writeHead
Se setHeader
tiver sido chamado para definir o cabeçalho, ele o fará. passe-o para writeHead
merge
Se este método for chamado e response.setHeader()
não tiver sido chamado), o valor do cabeçalho fornecido será gravado diretamente no canal da rede e não será armazenado em cache internamente. response.getHeader()
) no cabeçalho não produz os resultados esperados. Se o cabeçalho precisar ser preenchido de forma incremental e potencialmente recuperado e modificado no futuro, use response.setHeader()
.
setHeader só pode definir cabeçalhos um por um, writeHead pode definir muitos
setHeaders de uma vez e pode ser chamado repetidamente. writeHead só pode ser chamado uma vez, e
setHeader e writeHead aparecerão ao mesmo tempo. writeHead tem alta prioridade.
writeHead pode definir códigos de status e informações de status, setHeader não pode ser definido, apenas o cabeçalho pode ser definido.