2014-11-07 2 views
1

В принятом ответе on this page говорится, что мы должны проверять ответы HTTP-сервера для \r\n\r\n и \n\n как последовательность, которая отделяет заголовки от содержимого.Нужно ли проверять как « r n r n», так и « n n» как разделитель заголовка/содержимого HTTP?

Как:

HTTP/1.1 200 Ok\r\n 
Server: AAA\r\n 
Cache-Control: no-cache\r\n 
Date: Fri, 07 Nov 2014 23:20:27 GMT\r\n 
Content-Type: text/html\r\n 
Connection: close\r\n\r\n <-------------- 

или:

HTTP/1.1 200 Ok\r\n 
Server: AAA\r\n 
Cache-Control: no-cache\r\n 
Date: Fri, 07 Nov 2014 23:20:27 GMT\r\n 
Content-Type: text/html\r\n 
Connection: close\n\n <-------------- 

Во всех ответах, которые я видел в Wireshark, серверы используют \r\n\r\n.

Действительно ли необходимо проверить оба варианта? Какие версии серверов/протоколов будут использовать \n\n?

ответ

0

HTTP spec говорит:

Линия терминатора для полей сообщения заголовка является последовательность CRLF. Тем не менее, мы рекомендуем, чтобы при анализе таких заголовков приложения распознавали один LF в качестве ограничителя строк и игнорировали ведущий CR.

На практике я никогда не видел веб-сервер с разделителем линии CR.

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