Каков формат значений заголовка HTTP 1.1?

Я прочитал раздел 3.2 rfc7230. После удаления устаревших правил, спецификация поля заголовка выглядит так:

header-field   = field-name ":" OWS field-value OWS
field-name     = token
field-value    = *field-content
field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar    = VCHAR
VCHAR          = %x21-7E; visible (printing) characters

Я смущен определением field-content, Кажется, это соответствует 1 или 2 VCHARs, с любым количеством пробелов между ними, но он не будет совпадать с другим пробелом после field-content матч.

Например, для name:a<sp>b<sp>c, field-name будет соответствовать name, но field-content будет соответствовать a<sp>b а затем следующий <sp> не может быть сопоставлено другим field-contentтаким образом, этот заголовок недействителен.

Тем не мение, name:a<sp>bc<sp>d действителен, потому что есть два совпадения для field-content, a<sp>b а также c<sp>d,

Я думаю, что это противоречиво. Это предназначено или я что-то неправильно понял?

1 ответ

Я знаю, что это старый вопрос, но:

Обновленный раздел 5.5 RFC 9110 по-прежнему содержит эту двусмысленность. Поэтому я бы предложил придерживаться описанного здесь объяснения .

Другие вопросы по тегам