最近、「access.logにこのような行が表示される原因は何ですか?」と尋ねられました。
59.56.109.181 --- [22/Feb/2010:16:03:35 -0800] "GET http://www.google.com/ HTTP/1.1" 200 295 "-" "Mozilla /5.0(互換性; MSIE 5.01; Win2000) "
私の当面の答えは、誰かが少し邪悪なことを探求しているということです。
だが:
これは標準のLAMPサーバー(Ubuntu)上にあります。
多分あなたは読みたいでしょう http://wiki.Apache.org/httpd/ProxyAbuse
特にこの点:「私のサーバーはプロキシしないように適切に構成されているのに、なぜApacheは200(成功)ステータスコードを返すのですか?」と質問します。「200ではなく404応答である必要がありますか?」
Apache confに問題がなければ、ルートページを送信するだけです。ステータスコードが200であるためです。
誰かがサーバーをプロキシとして使おうとすると、これが起こると思います。これにより、http:// ... URLが「通常」になります(通常のサーバー要求から予想されるパス部分だけではありません)。
200ステータスコードに関しては、それは...エラー..まあ、私のサーバーもそれを行います。 http:// hostname の部分を無視しているようで、残りのパスを使用してローカルサーバーから結果を返します。それが理にかなっている理由を理解するには、おそらくRFCを掘り下げる必要があります。答えはわかりません。