24

HTTP リクエストを送信するとき、IE は User-Agent 変数をサーバーに送信します。可能な値 (ネットワーク デバッガーで表示):

ユーザーエージェント: Mozilla /5.0 (互換性のある MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)

私の質問: IE (または他のブラウザー) はどのようにしてこの変数を見つけますか? 一部の Web サイトにアクセスすると、この変数は他の変数とは異なり、変更がどこから来ているのかを追跡したいので、これを尋ねています。「互換性設定」は 1 つのオプションですが、他にもあると思います。

誰でもこの変数のプロセスを説明できますか?

4

2 に答える 2

29

User-Agent は、HTTP 応答ヘッダーではなく、HTTP 要求ヘッダーに表示されます。通常、リクエストはブラウザから Web アプリケーションに送信されます。したがって、user-agent 変数はブラウザーによって入力されます。ブラウザが異なれば、このフィールドに異なる値が入力されます。

IE がこれらの変数を見つける方法について、 User-Agent Registry Keysについて質問していると思います。

次のレジストリ キーに値を追加することで、ユーザー エージェント文字列の特定のトークンを上書きすることもできます。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               Internet Settings
                  5.0
                     User Agent
                        (default) = "Mozilla/4.0"
                        Compatible = "compatible"
                        Platform = "Windows NT 5.1"
                        Version = "MSIE 6.0"
                        Pre Platform
                           Token = Value
                        Post Platform
                           Token = Value

ユーザー エージェント キーのデフォルト値は、ユーザー エージェント文字列で報告されるアプリケーション名とアプリケーション バージョンのトークンを置き換えます。最初の 7 文字はアプリケーション名に使用され、残りの文字はアプリケーション バージョン トークンを指定することに注意してください。

Compatible、Platform、および Version の値は、ユーザー エージェント文字列内の対応するトークンを置き換えます。

レジストリ エディターを使用して Pre-Platform キーまたは Post-Platform キーの下に新しい文字列値を作成することにより、追加のトークンをユーザー エージェント文字列に追加できます。値の名前は完全なトークンである必要があります。値データは無視されます。Pre-Platform キーに追加されたトークンは、最終的なユーザー エージェント文字列でプラットフォーム トークンの前に表示されます。Post-Platform キーに追加されたトークンは、最終的なユーザー エージェント文字列のプラットフォーム トークンの後に表示されます。Pre-Platform キーまたは Post-Platform キーの複数のトークンが予測できない順序で表示されます。

于 2013-03-05T04:40:11.387 に答える