3

カスタム PHP フレームワークで、404 が発生したときに通知してくれるメーリング クラスを実装しました。URL、リファラー、UA 文字列がメールで送られてきます。

サイトのどこにもリンクされていない URL について、2 種類の説明のない 404 レポートが表示されます。これはかなり頻繁に起こっています。レポートの発信元と同じブラウザ バージョンでテストしました。html と javascript の両方で、問題は見つかりません。これらのページには通常、ほんの少しの javascript しか含まれていません。

Type1 の例:

source: http://www.example.com/articles/example-article
target (404): http://www.example.com/articles/undefined
User agents who have reported this:
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
(Chrome 30.0.1599.101 on win7)
- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; BOIE9;ENUSMSE)
(IE9 on win vista)
- Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0;WUID=78780BB80C56415F887179239977F107;WTB=6581)
(IE10 on win 8)

Type2 の例:

source: http://www.example.com/articles/example-article
target (404): http://www.example.com/articles
User agents who have reported this:
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)
(IE8 on win7)
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4325; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30707; MS-RTC LM 8)
(IE7 on windows server 2003)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 1.1.4322 ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
(IE8 on winXP)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB7.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET C LR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; HYVES)
(IE8 on win vista)

誰かがこれらを説明するのを手伝ってくれますか? おそらくバグのある Windows ブラウザ プラグインが原因でしょうか? Windows 以外のオペレーティング システムでこれらのレポートが発生しているのを見たことがありません。ただし、サイトには他の OS からもかなりの数のアクセスがあります。

乾杯!

EDIT #1 useragentstring.com を使用して UA 文字列を説明しました

EDIT #2 Palec、Fabio Beltramini、および Artur の回答は、問題をさらに理解するのに役立ち、彼ら全員が同様に貢献したと感じています。私は 1 つの回答しか承認/報酬を与えることができないため、彼が最初に回答したため、Palec の回答を承認することにしました。一緒に考えてくださった皆様、本当にありがとうございました。デバッグ中に注目に値するものに遭遇した場合は、ここに追加します。

4

4 に答える 4

1

実際のサンプルページを見ないとなんとも言えません。ほとんどの場合、javascript 関数がページ上のリソースまたはリンクの URL を動的に決定しており、一部のブラウザーでは JS 機能が異なるため、変数が未定義になっています。

これは、ユーザーが必ずしもそのページに移動したことを意味するわけではないことに注意してください。ブラウザがこの URL から画像をロードしようとした可能性があります。

ブラウザでこれをテストし、表示されるネットワーク リクエストを確認します。

var a=undefined;
var i=new Image();
i.src=a;

問題の原因を絞り込む有効な方法の 1 つは、"Accept" http ヘッダーもログに記録することです。そうすれば、リクエストがナビゲーションの結果であるかどうかを区別できます (「Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, / ;q= 」のような値になります)。 0.8") または画像などのページ上のリソースであるかどうか (Accept:image/webp, / ;q=0.8)

于 2013-11-03T05:15:31.977 に答える