Antworten:
Ich denke, der einzige Unterschied ist der User-Agent:
Header in der Anfrage.
Hier sind die von Chrome auf meinem Android-Gerät gesendeten User-Agent-Header:
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
Beachten Sie das Wort "Mobile" im ersten und auch die Erwähnung des Android-Systems und -Geräts. Wenn ich diese überprüfe, sehe ich, dass es auch falsche Informationen liefert - nämlich X11 und x86_64 -, die dem von der Desktop Linux-Version von gesendeten Wert genau entsprechen Chrom.
Ich wollte nur darauf hinweisen, dass Chrome jetzt nicht nur User-Agent
das ursprüngliche Meta-Tag des Ansichtsfensters ändert, sondern es auch ignoriert, wenn Sie "Desktop Site anfordern". Daher ist es nicht mehr erforderlich, das zu schnüffeln, User-Agent
und Sie können sich auf die Änderung des Ansichtsfensters verlassen, wie dies bei den meisten reaktionsfähigen Websites automatisch der Fall ist. Weitere Informationen finden Sie in dieser Änderung .
Ein weiterer geringfügiger Unterschied besteht darin, dass die Anfrage anscheinend an die zuletzt absichtlich eingegebene URL gesendet wurde, bevor sie von Re-Directors verschoben wurde. Beispielsweise:
Gegeben: somesite.com schnüffelt den Agenten, sieht Android und führt eine document.location + = "/ m" aus.
Dann: Der Browser hat eine URL von somesite.com/m
Aber: Wenn Sie "Desktop-Site anfordern", wird der User-Agent geändert und von somesite.com erneut angefordert
Es sei denn: Sie haben die mobile URL von somesite.com/m direkt aufgerufen. In diesem Fall wird nur somesite.com/m neu geladen.
Ich würde erwarten, dass dies mit HTTP 301- und 302-Weiterleitungen funktioniert, ich weiß, dass es mit Änderungen der document.location funktioniert (zumindest wie beschrieben), und würde spekulieren, dass es mit <meta> Aktualisierungen funktioniert.
Dieses Javascript-Snippet macht effektiv dasselbe:
function requestDesktopSite() {
document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>