昔perlで作ったSocketを使って外部のサーバからHTTPリクエストでデータを
取ってくるプログラムでデータがとってこれなくなっていた。
エラーの内容は「400 Bad Request」
調べてみるとデータを取りに行く先のサーバのApacheのバージョンが2.4に上がっていた。
色々テストプログラムを書いてみると、
リクエストヘッダを送るところの改行コードが「LF」なのが問題だった。
改行コードを「CRLF」にしたら解決。
Apache2.4は「HttpProtocolOptions」ディレクティブのデフォルトが「Strict」になっており、
この指定が厳密な解釈をすることでリクエストの改行がLFだけだったりすると、エラーになるようです。
最初リクエストヘッダの送信をヒアドキュメントで書いてて改行コードに全然気づかなくて時間がかかった。。