Вопрос по HTTP заголовкам

RevivaL

Новичок
В справочнике сказано "Как видим, после GET-строки могут следовать и другие строки с информацией, разделенные символом перевода строки. ", значит каждый заголовок должен окончатся символом перевода строки \n.


Как правильно?

PHP:
POST /script.cgi HTTP/1.1\n
Host: mysite.com
Content-length: 5
\n\n
или так (здесь как и сказано в справочнике каждый заголовок кончается символом \n)

PHP:
POST /script.cgi HTTP/1.1\n
Host: mysite.com\n
Content-length: 5\n
\n\n
 

Dovg

Продвинутый новичок
Строки в стандарте заканчиваются на \r\n, если не ошибаюсь
 

Dovg

Продвинутый новичок
5.1 Request-Line

The Request-Line begins with a method token, followed by the
Request-URI and the protocol version, and ending with CRLF. The
elements are separated by SP characters. No CR or LF is allowed
except in the final CRLF sequence.

...

The line terminator for message-header fields is the sequence CRLF.
However, we recommend that applications, when parsing such headers,
recognize a single LF as a line terminator and ignore the leading CR.


Про заголовки - то же самое. пруф - http://www.faqs.org/rfcs/rfc2616.html
То, что веб-сервера допускают такие вольности - это всего лишь рекомендация, но не правило.
 

Вурдалак

Продвинутый новичок
Код:
POST /script.cgi HTTP/1.1
Host: mysite.com
Content-length: 5
==
Код:
POST /script.cgi HTTP/1.1\r\nHost: mysite.com\r\nContent-length: 5\r\n\r\n
 

Вурдалак

Продвинутый новичок
Значит учебник — говно.

P.S. Надо понимать, что все эти \r и \n — управляющие символы, т.е. строка с этими штуками имеет смысл только в рамках строкового литерала.
 
Сверху