HTTPヘッダの改行コードについて

[上に] [前に] [次に]
ベンガル 2000/03/01(水) 15:25:21
久しぶりに質問に来ました。
サーバからクライアントに送信するときの
print "Content-type: text/html\n";
print "\n";
print "ほにゃらら";
ですが、ターミナルがWindowsのときは本当は
print "Content-type: text/html\r\n";
print "\r\n";
print "ほにゃらら";
ではないかと思うのですが、どうなんでしょう?
Windowsクライアントからサーバに送ってるヘッダは\r\nのような気がするので。。。。

S-pore [HomePage] 2000/03/01(水) 15:32:38
Winのときは,勝手に改行コード変換(\n→\r\n)してくれると思いますが・・・。
(もちろん binmode(STDOUT); とかやってしまえば話は別。)

S-pore [HomePage] 2000/03/01(水) 15:55:43
って,よく読んでませんでした。すみません。
的外れな↑は読み飛ばしてください。

H&A 2000/03/03(金) 17:14:00
RFC 1945 (HTTP/1.0) や RFC 2068 (HTTP/1.1) を読むと、

「HTTP ヘッダの行終端文字は CRLF だけど、ヘッダを解釈するアプリケーションは LF のみの行終端を認識できるようにすることをオススメします」

みたいなことが書いてあります(流し読みなので不正確かも…詳しくは RFC 1945 の Appendix B や RFC 2068 の 19.3 をご覧ください)。
実際のところ、ほとんどのブラウザは CRLF (\r\n) でも LF のみ (\n) でも受け入れてくれるみたいです。ので、どちらでも大丈夫ではないかと思います。
もちろん、HTTP/1.0 や HTTP/1.1 での定義に従って \r\n としておくのがベストでしょう。

[上に] [前に] [次に]