узел http2 запросов с куки - PullRequest
0 голосов
/ 03 апреля 2020

Узловые запросы http2 выглядят так:

const client = http2.connect('https://somehost.com')
const req = client.request( {
  ':path': '/some/path',
  ':method': 'GET',
  'header-name': 'header-value',
  'cookie': 'foo=bar'  
} )

Не представляется возможным отправить несколько таких заголовков cook ie. Я что-то пропустил? Обратите внимание, что файлы cookie не должны объединяться, как в заголовках http / https.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Как сказано в do c, дубликаты заголовка cook ie, разделенные ";" и set-cookie, должны быть массивом.

https://nodejs.org/api/http2.html#http2_headers_object

set-cook ie всегда массив. Дубликаты добавляются в массив. Для дублирующих заголовков cook ie значения объединяются вместе с '; '.

const client = http2.connect('https://somehost.com')
const req = client.request( {
  ':path': '/some/path',
  ':method': 'GET',
  'header-name': 'header-value',
  'Set-Cookie': ['ting="tang; expires=0; path=/;"', 'wallawalla="bingbang; expires=123456789; path=/;"'],
} )
0 голосов
/ 10 апреля 2020

Итак, я понимаю, что если клиент использует HTTP / 2, вы объединяете куки с точкой с запятой, как сказал Лоуренс. Это нормально, если сервер также HTTP / 2, однако, если сервер HTTP / 1.1, потребуется дополнительная обработка для их объединения.

Если имеется несколько заголовков Cook ie поля после распаковки, они ДОЛЖНЫ быть объединены в одну строку октетов с использованием двухоктетного разделителя 0x3B, 0x20 (строка ASCII ";")

Подтверждено spe c для HTTP2 https://tools.ietf.org/html/rfc7540#section -8.1.2.5

...