Путаница с многострочными HTTP-заголовками

В HTTP заголовки могут быть многострочными.

Например:

Слово дня: Лиса прыгает
через коричневую собаку.

Однако, читая стандарт, я пришел к выводу, что начальные и конечные пробелы МОГУТ быть удалены, поэтому мы получаем «Лиса прыгает через коричневую собаку». Overthe становится одним словом, хотя на самом деле это должно было быть «Over the» (два слова, разделенные пробелом).

Как мне обрабатывать синтаксический анализ значений HTTP в подобных ситуациях, т. е. как мне объединить многострочные заголовки HTTP, чтобы они означали то же самое, что и однострочные заголовки?


person unixman83    schedule 24.12.2011    source источник


Ответы (1)


Пробел перед the не является ни ведущим, ни конечным.

Раздел 4.2 стандарта определяет начальные/конечные пробелы как «линейный пробел, возникающий перед первым непробельным символом значения поля или после последнего непробельного символа значения поля». Этот пробел не ставится ни перед первым символом значения поля, ни после последнего.

Правило для такого рода линейных пробелов внутри значения поля заключается в том, что оно «МОЖЕТ быть заменено одним [пробелом] перед интерпретацией значения поля или пересылкой сообщения вниз по течению».

Так мы получаем «Лиса перепрыгивает через коричневую собаку».

person David Schwartz    schedule 24.12.2011
comment
Я читал это, это выглядело как начальный пробел, когда я смотрел на дамп. Не думал об этом как о середине, потому что это было начало строки. - person unixman83; 25.12.2011