一部のサイトは、スマートフォンや PC からアクセスすると、レイアウトが自動的に調整されます。私はそれがどのように行われるのだろうか (Javascript? ブラウザのデータを取得する?)。私はJAVAを学んでいます、ありがとう。
4 に答える
Web サイトは、ユーザー エージェント文字列を介してブラウザを認識します。これは、サイトにブラウザの種類とバージョンを伝える一意の識別子です。
これは、ヘッダー フィールドとしてGet Requestnavigator.userAgent
でサーバーにも送信されます。
例:
ユーザーエージェント: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (Gecko のような KHTML) Chrome/19.0.1084.56 Safari/536.5
これを取得するためのJava サーブレット コードは次のようになります (詳細情報はこちら)。
public final void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String agent = req.getHeader("user-agent");
if (agent != null && agent.indexOf("MSIE") > -1) {
// Internet Explorer mode
} else {
// Non-Internet Explorer mode
}
}
必須のウィキペディア参照:
http://en.wikipedia.org/wiki/User_agent
User-Agent 文字列形式は現在、RFC 2616 (HTTP/1.1) のセクション 14.43 で指定されています。HTTP の User-Agent 文字列の形式は、オプションのコメントを含む製品トークン (キーワード) のリストです。たとえば、製品の名前が WikiBrowser の場合、ユーザー エージェント文字列は WikiBrowser/1.0 Gecko/1.0 のようになります。「最も重要な」製品コンポーネントが最初にリストされます。この文字列の部分は次のとおりです。
製品名とバージョン (WikiBrowser/1.0) レイアウトエンジンとバージョン (Gecko/1.0)。この場合、これはレイアウト エンジンとバージョンを示します。残念なことに、ブラウザー戦争の間、多くの Web サーバーは、高度な機能を必要とする Web ページのみを、Mozilla の特定のバージョンとして識別されたクライアントに送信するように構成されていました。
このため、ほとんどの Web ブラウザーは次のように User-Agent 値を使用します: Mozilla/[バージョン] ([システムとブラウザーの情報]) [プラットフォーム] ([プラットフォームの詳細]) [拡張機能]。たとえば、iPad の Safari では次のものが使用されています。
Mozilla/5.0 (iPad; U; Mac OS X のような CPU OS 3_2_1; en-us) AppleWebKit/531.21.10 (Gecko のような KHTML) Mobile/7B405 この文字列のコンポーネントは次のとおりです。
Mozilla/5.0: 以前は Mozilla レンダリング エンジンとの互換性を示すために使用されていました (iPad; U; Mac OS X のような CPU OS 3_2_1; en-us): ブラウザが実行されているシステムの詳細 AppleWebKit/531.21.10: プラットフォームブラウザの使用 (Gecko などの KHTML): ブラウザ プラットフォームの詳細 Mobile/7B405: これは、ブラウザで直接またはサード パーティを通じて利用できる特定の拡張機能を示すためにブラウザによって使用されます。この例として、Microsoft Live Meeting が拡張機能を登録して、Live Meeting サービスがソフトウェアが既にインストールされているかどうかを認識できるようにします。これは、会議への参加に合理化されたエクスペリエンスを提供できることを意味します。
Web ブラウザの各リクエストには、必要な情報を含むエージェント文字列があります。エージェント文字列の説明については、このページを参照してください。http://en.wikipedia.org/wiki/User_agent
ブラウザーは、GET 要求ごとに、それ自体に関するさまざまな情報を含むヘッダーを送信します。例についてはhereを参照してください。ただし、話している特定の情報 (ブラウザーの種類) はUser-Agent
フィールドで送信されます。一部の http クライアント ライブラリでは、送信されるフィールドの一部を制御して、他のタイプのクライアントの ID を想定することができます。
これは、通常は (Web サイトで) JavaScript を使用して、ユーザー エージェントを読み取ることによって行われます。
Javascript の例はこちら。