web-dev-qa-db-fra.com

Comment fonctionne l'option "Demander un site" de Chrome?

Pour iOS google chrome, lorsqu'un utilisateur appuie sur le bouton "Demander un site de bureau", que fait le navigateur pour essayer de faire apparaître un site de bureau? J'imagine une sorte d'en-tête sur la demande des sites, ou quelque chose de similaire?

81
butallmj

Je pense que la seule différence est le User-Agent: en-tête dans la requête.

Voici les en-têtes User-Agent envoyés par Chrome sur mon périphérique Android:

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

Notez le mot "Mobile" dans le premier mot, ainsi que la mention du Android système et appareil. En vérifiant ces éléments, je vois qu’il fournit également de fausses informations - à savoir X11 et x86_64 - pour correspondre étroitement la valeur envoyée par la version Desktop de Chrome de Chrome.

58
dsh

Je voulais juste souligner que Chrome modifie désormais non seulement le User-Agent mais ignore également la balise méta de la fenêtre d'affichage d'origine si vous "Demander le site de bureau". Ainsi, il ne sera pas nécessaire de renifler le User-Agent et vous pouvez compter sur le changement de fenêtre comme le font automatiquement les sites les plus réactifs. Voir this Change pour plus de détails.

16
Thomas

Une autre différence mineure est que la demande semble avoir été renvoyée à la dernière adresse URL entrée intentionnellement avant que les administrateurs ne la déplacent. Par exemple:

Étant donné: somesite.com renifle l'agent, voit Android et effectue un document.location + = "/ m";

Then: le navigateur aura une URL de somesite.com/m

Mais: Si vous "Demander un site de bureau", cela changera le User-Agent et demandera à nouveau à somesite.com

À moins que: vous soyez entré directement dans l'URL de mobile de somesite.com/m en premier lieu, auquel cas il ne fait que recharger somesite.com/m.

Je m'attendrais à ce que cela fonctionne avec les redirections HTTP 301 et 302, je sais que cela fonctionne avec les modifications de document.location (au moins comme décrit), et je supposerais que cela fonctionne avec des actualisations <méta>.

14
Jason Miller