2016-09-08 1 views
2

Я пытаюсь настроить server push with cloudflare, но для ввода нескольких файлов требуется несколько полей заголовков link. Однако я не могу найти документально описанный способ включения нескольких полей заголовка с тем же ключом в node.js. Я попытался предоставить массив, но это просто объединяет их вместе как значение для одного поля заголовка.Как установить несколько полей заголовка HTTP с тем же ключом в Node.js?

ответ

3

выразить

Вы передаете массив значений res.header('HeaderName', arrayOfValues). Вот рабочий пример и вывод cURL, показывающий дубликаты заголовков ответов. Это напрямую не документировано, но оно работает ([email protected]).

const express = require('express') 
const app = express() 
app.get('/', (req, res, next) => { 
    res.header('Link', ['Link1', 'Link2']) 
    res.send() 
}) 
app.listen(3000) 

завиток -v локальный: 3000 Выход:

< HTTP/1.1 200 OK 
< X-Powered-By: Express 
< Link: Link1 
< Link: Link2 
< Date: Fri, 09 Sep 2016 01:44:22 GMT 
< Connection: keep-alive 
< Content-Length: 0 

ядро ​​узла HTTP

Использование res.setHeader(name, arrayOfValues)

const http = require('http') 

const server = http.createServer(function (req, res) { 
    res.setHeader('Link', ['Link1b', 'Link2b']) 
    res.end() 
}) 
server.listen(3000) 

завиток выход:

< HTTP/1.1 200 OK 
< Link: Link1b 
< Link: Link2b 
< Date: Fri, 09 Sep 2016 01:52:53 GMT 
< Connection: keep-alive 
< Content-Length: 0 
+0

Спасибо, я попробовал это, но, как ни странно, на моей локальной машине заголовок появился как значения, разделенные запятыми, такие как «Link: Link1b, Link2b», но когда я запустил тот же сервер на тестовом сервере heroku, они подошли как отдельные 'Link'. Оба сервера работают на узле 5.2.0, поэтому я не уверен, что вызывает это странное поведение. – TimE

+0

Скорее всего, разные версии узлов. Я бы очень тщательно проверял детали вашей среды. –

+0

Да, это была моя первая мысль, но это было не так. Оказалось, что мой браузерский прокси-сервер почему-то делает объединение. Я угадываю, какой метод прокси он использует, повторно интерпретирует поля заголовка. Спасибо за помощь! – TimE

Смежные вопросы