次の方法で共有


Internet Explorer 8 の User-Agent 文字列 (更新版)

更新日: 2009 年 1 月 9 日

翻訳元: The Internet Explorer 8 User-Agent String (Updated Edition)(英語)

本記事は、Internet Explorer 開発チーム ブログ (英語) の翻訳記事です。本記事に含まれる情報は、Internet Explorer 開発チームブログ (英語) が作成された時点の内容であり、製品の仕様や動作内容を保証するものではありません。本記事に含まれる情報の利用については、使用条件をご参照ください。また、本記事掲載時点で、Internet Explorer 開発チームブログ (英語) の内容が変更されている場合があります。最新情報については、Internet Explorer 開発チームブログ (英語) をご参照ください。

2008 年 2 月にお伝えした (英語) ように、Internet Explorer 8 は Web サーバーと対話する際、更新された User-Agent 文字列を送信します。User-Agent 文字列についての最も新しいブログ記事を掲載した後で Internet Explorer チームは互換表示を導入し、また Windows チームは Windows 7 Beta をリリースしました。これらの出来事は User-Agent 文字列に若干の影響を与えるため、その概要について投稿します。

Trident/4.0 User-Agent 文字列

"MSIE 8.0" という User-Agent 文字列をブロックするサイトをユーザーが表示できるようにするため、互換表示を有効にすると IE8 は "MSIE 7.0" というバージョン情報を送信します。Scott が昨年の 8 月に説明したように、User-Agent 文字列に含まれる新しい "Trident" トークンにより、互換表示機能が使われている場合でも常に Internet Explorer 8 のクライアントを判別できます。

Windows Vista 上の IE8 (互換表示)

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)

Windows Vista 上の IE8

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)

IE のバージョンを判定する最善の方法 (英語) で示したように、Web 開発者はブラウザーの User-Agent 文字列に基づいてコンテンツへのアクセスをブロックしない事をお勧めします。より良い性能のために異なるバージョンのブラウザーごとに異なるコンテンツを提供する必要がある場合は、ブラウザーの将来のバージョンがブロックされることが無いよう注意する必要があります。

User-Agent 文字列のみに基づいてコンテンツを提供する方法は、ブラウザーの全ての機能を判定する方法として信頼できるものではありません。なぜならスクリプトや拡張機能を無効にするなど、ユーザーが設定をいろいろ変更できるからです。

Windows 7 での User-Agent 文字列

Windows 7 上の IE8 は、新しい Windows NT バージョン トークンを含む User-Agent 文字列を送信します。

Windows 7 上の IE8

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)

(Windows 7 がなぜ “6.1” というバージョン番号を使うのか、簡単に言えばこれにより互換性が向上するからです。詳しい答えは Windows チーム ブログ (英語) で見つかるでしょう)

それでもオペレーティング システムのバージョンをチェックしているごく少数の Web サイトでは、“Windows NT 6.1” というバージョン トークンは問題になるかもしれません。そうしたWeb サイトでは Windows 7 上の Internet Explorer 8 を使っているユーザーにエラー メッセージを表示したり、動作を中断するでしょう。こうしたサイトでは、互換表示ボタンも役に立ちません。なぜなら互換表示ボタンは Internet Explorer のバージョン番号は変更しますが、Windows のバージョン番号はそのままだからです。

Windows 7 上の IE8 を使用しているユーザーが “Windows NT 6.1” というバージョン番号をブロックしている Web サイトを表示するには、送信される Windows のバージョン番号を一時的に変更するためのレジストリによる上書き (英語) が必要です。もし Windows 7 をブロックする Web サイトに出会ったら、Connect サイトでバグ報告として送信するか、そのサイトの URL を下にあるコメント欄に投稿してください。

64 ビット版 Internet Explorer を検知する

4 ギガバイトを超えるメモリを搭載したコンピュータが一般的になっているため、多くのユーザーが 64 ビット版の Windows を利用するようになりました。サードパーティ製のアドオンとの互換性のため、64 ビット版のシステムでも 32 ビット版の Internet Explorer が既定で使用されます。とはいえ、ユーザーが 64 ビット版のシステムを使っているかどうか Web サイトが判定する事も場合によっては有益です。例えば 64 ビット版の実行ファイルをダウンロードさせるか判断したい場合などです。

User-Agent 文字列に含まれるトークンにより、ユーザーが 64 ビット版の Windows を使っているか、また 64 ビット版の Internet Explorer を使っているかを検知できます。

64 ビット版 Windows 上の 64 ビット版 IE:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0)

64 ビット版 Windows 上の 32 ビット版 IE:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0)

ちなみに、WOW64 (英語) は “Windows on Windows 64-bit.” に由来しています。

User-Agent 文字列を拡張する

MSDN の記事 "ユーザー エージェント文字列を理解する" に記載されているように、ユーザーやアプリケーションが、レジストリ キーの設定により新しいトークンを User-Agent 文字列に追加する事ができます。文字列が長くなるとネットワークのオーバーヘッドは目に見えて増大するので、トークンの追加は慎重に行う事を強くお勧めしています。User-Agent 文字列はブラウザー (と IE Web Browser コントロールを使用するアプリケーション) からのすべての HTTP/HTTPS リクエストのヘッダーとして送信される事を忘れないでください。そのためトークンを追加する必要がある場合でも、できる限り短くしてください。また Web サイトによっては、User-Agent 文字列が非常に長い (例えば 128 文字以上など)と正しく機能しない場合もあります。

ここ (英語) で現在使用しているブラウザーが送信している User-Agent 文字列をチェックできます。


ありがとうございました。

Eric Lawrence
プログラム マネージャー

 

ページのトップへ