HTTPの改行について

2010年2月10日
| コメント(0) | トラックバック(0) HTTPの改行について

CGIのヘッダーを自力で出力していたときに気にした記憶があった。

\nは環境依存なので、\015\012とか使った方がいい

Charsbarさんの言うとおりでしょうね。
NanoAのextlibにも入っているCGI::Simpleでは、改行コードをOSに応じて定義しているようです。

# Define the CRLF sequence.  You can't use a simple "\r\n" because of system
# specific 'features'. On EBCDIC systems "\t" ne "\011" as the don't use ASCII
sub crlf {
  my ( $self, $CRLF ) = @_;
  $self->{'.crlf'} = $CRLF if $CRLF;    # allow value to be set manually
  unless ( $self->{'.crlf'} ) {
    my $OS = $^O
     || do { require Config; $Config::Config{'osname'} };
    $self->{'.crlf'}
     = ( $OS =~ m/VMS/i ) ? "\n"
     : ( "\t" ne "\011" ) ? "\r\n"
     :                      "\015\012";
  }
  return $self->{'.crlf'};
}

NanoAはともかく、CGI::ExceptionManagerのようにCPANにアップしてあるものは、この辺もしっかり修正してもらう方が良いでしょうね。

トラックバック(0)

このブログ記事に対するトラックバックURL:

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2010年2月10日 01:23に書いたブログ記事です。

ひとつ前のブログ記事は「気がつけばログイン出来るようになっていた」です。

次のブログ記事は「CRLFって重要!」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type