В спецификациях HTTP и MIME указано, что строки заголовков должны заканчиваться на \ r \ n, но они неясны (некоторые утверждают, что неясно, ясны ли они) относительно того, что делать с содержимым ТЕКСТАРА. (См., Например, эту ветку рабочей группы HTML по этой проблеме.)
Вот цитата из спецификации HTTP / 1.1 о заголовках сообщений:
Знак конца строки для полей заголовка сообщения - это последовательность CRLF. Тем не менее, мы рекомендуем, чтобы приложения при синтаксическом анализе таких заголовков распознавали одиночный LF как признак конца строки и игнорировали начальный CR.
Я думаю, что это хорошая стратегия в целом: строго относиться к тому, что вы производите, но либерально относиться к тому, что вы принимаете. Вы должны предполагать, что вы получите всякие терминаторы строк. (Обратите внимание, что в дополнение к CRLF и LF, Mac OS-9 использовала только CR, и есть еще несколько таких. Стандарт Unicode (раздел 5.8) определяет широкий диапазон последовательностей символов, которые должны распознаваться как символы конца строки; есть их список здесь .)