web-dev-qa-db-ja.com

Chromeの[デスクトップサイトのリクエスト]オプションはどのように機能しますか?

IOSのGoogleクロームの場合、ユーザーが[デスクトップサイトをリクエスト]ボタンを押すと、ブラウザはデスクトップサイトを表示しようとしますか?サイトが探しているリクエストのヘッダーのようなものを想像しますか?

81
butallmj

唯一の違いはUser-Agent:リクエストのヘッダー。

Chrome on my Androidデバイス:によって送信されるUser-Agentヘッダーは次のとおりです。

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19

最初の単語「モバイル」に注意してください。また、Androidシステムおよびデバイス。 ChromeのデスクトップLinuxバージョンによって送信される値。

58
dsh

ChromeがUser-Agentを変更するだけでなく、[デスクトップサイトのリクエスト]の場合は元のビューポートメタタグも無視するようになりました。 User-Agentをスニッフィングすると、ほとんどのレスポンシブサイトが自動的に行うように、ビューポートの変更に依存できます。詳細については、 this Change を参照してください。

16
Thomas

もう1つのわずかな違いは、リダイレクターが移動する前に、最後に意図的に入力されたURLに対する要求であったように見えることです。例えば:

Given: somesite.comはエージェントをスニッフィングし、Androidを見て、document.locationを実行します+ = "/ m";

Then:ブラウザのURLはsomesite.com/mになります

ただし:「デスクトップサイトをリクエスト」すると、User-Agentが変更され、somesite.comから再リクエストされます。

nless:そもそもsomesite.com/mのモバイルURLに直接アクセスしていました。この場合、somesite.com/mをリロードするだけです。

これはHTTP 301および302リダイレクトで動作することを期待し、document.locationの変更(少なくとも説明どおり)で動作することを知っており、<meta>更新で動作すると推測します。

14
Jason Miller