HTTP ヘッダーの改行スタイル 質問する

HTTP ヘッダーの改行スタイル 質問する

HTTP ヘッダーで使用する改行スタイルとして、\r\nとのどちらが適切ですか\n。その理由も教えてください。

ベストアンサー1

\r\nプロトコル仕様では改行として定義されているためです。RFC2616のセクション2.2「基本ルール」の冒頭には次のように記されている。、非常に明白に:

CR = <US-ASCII CR、復帰(13)>
LF = <US-ASCII LF、改行(10)>
HTTP/1.1では、エンティティ本体を除くすべてのプロトコル要素の行末マーカーとしてCR LFのシーケンスを定義しています。

RFC2616は技術的にはRFC7230によって廃止されましたが、劇的な変更はなく、再びCRLFを区切り文字として呼び出しています。セクション3、RFC参照RFC5234、付録B.1「CRLF」を次のように定義します%x0D %x0A

しかし、人々が何らかの目的で基準を破ることを認識して、セクション19.3(繰り返しになりますが、正しい順序):

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

新しいRFC7230、§3.5

開始行とヘッダー フィールドの行末文字は CRLF シーケンスですが、受信者は単一の LF を行末文字として認識し、先行する CR を無視する場合があります。

したがって、悪事を働きたい場合や RFC のルールに違反したくない場合は、 を使用してください\r\n

おすすめ記事