Apache2.4の「HttpProtocolOptions」と「400 Bad Request」


Apache2.4の「HttpProtocolOptions」と「400 Bad Request」昔perlで作ったSocketを使って外部のサーバからHTTPリクエストでデータを
取ってくるプログラムでデータがとってこれなくなっていた。

エラーの内容は「400 Bad Request」

調べてみるとデータを取りに行く先のサーバのApacheのバージョンが2.4に上がっていた。

色々テストプログラムを書いてみると、
リクエストヘッダを送るところの改行コードが「LF」なのが問題だった。
改行コードを「CRLF」にしたら解決。

HttpProtocolOptions Directive

Apache2.4は「HttpProtocolOptions」ディレクティブのデフォルトが「Strict」になっており、
この指定が厳密な解釈をすることでリクエストの改行がLFだけだったりすると、エラーになるようです。

最初リクエストヘッダの送信をヒアドキュメントで書いてて改行コードに全然気づかなくて時間がかかった。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です