アクセスログのApacheリクエストエントリが空またはnull


10

このエントリは、Apacheアクセスログに記録されています。

IPアドレス--[00/00/0000:00:00:00 -0000] "" 301-"-" "-"

LogWatchによってnull HTTP応答として検出され、プローブ成功としてマークされました。

私はこの要求がどのように行われたか、そしてそれがどのように成功した調査と見なされるかについて興味があります。これが私が特定の質問で解読できるものです:

  1. 彼らの要求は「」でした- これはどういう意味ですか?
  2. HTTP戻りコードは301でした:このWebサイトには、Apache構成で定義されたリダイレクトがあります-おそらく、このリダイレクトをトリガーするURLにヒットしていましたか?
  3. 適切なHTTPリクエストを使用していなかった
  4. 彼らは「-」サイズの返品を受け取りました- これはどういう意味ですか?

回答:


8

それは空の要求でした。

  1. %r実際にはリクエストの最初の行です。つまり、彼らは空のリクエストを送信しました。つまり、ヘッダーも、本文も、何もありません。おそらくポート80へのソケット接続でした。
  2. 301はそうだったではないウェブサイトに-彼らはあなたのウェブサイト上で、目的のファイルを含む、彼らの要求で定義されたものを、持っていない、覚えておいてください。
  3. 丁度。
  4. - データがクライアントに返されなかったことを意味します。サイズがゼロと混同しないでください。

つまり、これはおそらく、データを送受信せずにポート80に対する接続を開いたり閉じたりする誰かでした。


私はこのエラーを試して再現したいと思います-このエントリです。それを行う方法に関する提案/アイデアはありますか?おそらくtelnet?HTTP 301は私をスローします-これはどのようにどこで設定されていますか?
elle

1
おそらくこれは、ユーザーが送信したのと同じデータ、つまり ``(スペース、その外観)を送信することで実行できます。ただし、サーバーの構成が異なる場合がありますが、これを行うと、501エラーではなく、エラーが表示301されます。これを行うには、次のようにしますecho " " | nc http://whatever 80
Andrew M.

ここでの注意点の1つは、応答の読み取りを禁止nc(またはさえ)できないncatため、戻り値のサイズを取得することです。送信後に接続を強制的に閉じる独自のスクリプトを作成することもできますが、フットワークを自分で行う必要があります。
Andrew M.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.