
Как быстро начать работу с VUE3.0: приступайте к обучению.
Сегодня, изучая Node я обнаружил , что setHeader и writeHead в Node/http очень похожи. Оба они могут устанавливать заголовки ответов.
Параметры
response.setHeader(name, value)Копировать кодовое
http.ServerResponse возвращает объект ответаи
устанавливает один атрибут для заголовка ответа.
Обратите внимание, что
TypeError(
'Content-Type', 'text/html')
response. setHeader('Set-Cookie', ['type=ninja', 'language=javascript']) повторно устанавливает атрибут
// возвращает content-type = text/html1
response.setHeader('Content-Type', 'text/html')
response.setHeader('Content-Type', 'text/html1') 
параметр
response.writeHead(statusCode, [statusMessage], [headers])
statusCode http код состояния
statusMessage сообщение о состоянии (необязательно)
заголовки атрибута объекта или массива (необязательно)
return http.ServerResponse возвращает объект ответа

Функция
аналогична функции setHeader
Обратите внимание
,
что можно задать несколько свойств. setHeader может быть задан только один раз
response.end()
только один раз.
символы вызовут выдачу TypeError .
Пример
, потому что writeHead возвращает. Это объект ServerResponse, мы можем выполнять цепные вызовы
const body = 'hello world';
ответ
.writeHead(200, {
«Длина контента»: Buffer.byteLength(body),
«Тип контента»: «текст/обычный»
})
.end(body); Content-Length здесь указывается в байтах, а не в символах. Buffer.byteLength() используется для определения длины текста.
Nodejs не будет проверять, соответствует ли Content-Length длине передаваемого текста.
// Возвращаем content-type = text/plain.
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html');
res.setHeader('X-Foo', 'bar');
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('ок');
}); writeHead имеет более высокий приоритет, чем setHeader , и writeHead можно вызвать только один раз, поэтому при вызове сначала учитывайте, какие заголовки меняются не часто, а затем вызывайте writeHead
Если setHeader был вызван для установки заголовка, то он это сделает
передайте его в слияние writeHead
Если этот метод вызывается, а response.setHeader() не был вызван), предоставленное значение заголовка будет записано непосредственно в сетевой канал и не будет кэшироваться внутри. response.getHeader() ) в заголовке не дает ожидаемых результатов. Если заголовок необходимо заполнять постепенно и потенциально извлекать и изменять в будущем, используйте вместо него response.setHeader() .
setHeader может устанавливать заголовки только один за другим, writeHead может устанавливать множество
setHeader одновременно и может вызываться повторно. writeHead можно вызывать только один раз, а
setHeader и writeHead появляются одновременно, и setHeader будет объединен в writeHead. writeHead имеет высокий приоритет.
writeHead может устанавливать коды состояния и информацию о состоянии, setHeader не может быть установлен, можно установить только заголовок.