web-dev-qa-db-ja.com

HTTPヘッダーの改行スタイル

HTTPヘッダーでの使用に適した改行スタイル:\r\nまたは\n、およびその理由

154
dpq

\r\n。これは、プロトコル仕様で改行として定義されているためです。 RFC2616は、セクション2.2(基本ルール(!))の冒頭で、非常に明確に述べています

CR = <US-ASCII CR、キャリッジリターン(13)>
LF = <US-ASCII LF、改行(10)>
HTTP/1.1は、エンティティボディを除くすべてのプロトコル要素の行末マーカーとしてシーケンスCR LFを定義します

ただし、人々が何らかの目的で標準を破ることを認識すると、 セクション19. に「許容条項」があります(correctシーケンス):

メッセージヘッダーフィールドの行末記号は、CRLFシーケンスです。ただし、このようなヘッダーを解析する場合、アプリケーションは単一のLFを行終端記号として認識し、先頭のCRを無視することをお勧めします。

したがって、悪になりたくない、またはRFCの規則に違反しない限り、\r\nを使用してください。

211
Piskvor

\ r\n RFC 2616がそう述べているため(セクション2.2、「基本規則」):

HTTP/1.1は、すべての行末マーカーとしてシーケンスCR LFを定義します
entity-bodyを除くプロトコル要素(付録19.3を参照
トレラントアプリケーション)。エンティティ本体内の行末マーカーは、セクション3.7で説明されているように、関連するメディアタイプによって定義されます。

   CRLF           = CR LF
22
SymKat

ブラウザが RFC2616 に従うため、CRLF( "\ r\n")。

13
Jürgen Thelen