Как работает Chrome "Запрос рабочего стола"?

Для iOS google chrome, когда пользователь нажимает кнопку "Запрос рабочего сайта", что делает браузер, чтобы попытаться открыть рабочий стол? Я представляю себе какой-то заголовок по запросу, который ищут сайты, или что-то подобное?

Ответ 1

Я думаю, что единственным отличием является заголовок User-Agent: в запросе.

Вот заголовки User-Agent, отправленные Chrome на моем устройстве 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

Обратите внимание на слово "Mobile" в первом, а также на упоминание системы Android и устройства. Проверяя это, я вижу, что он также предоставляет неверную информацию, а именно X11 и x86_64, чтобы точно соответствовать значению, отправленному на рабочем столе Linux версия Chrome.

Ответ 2

Еще одно небольшое различие заключается в том, что запрос, по-видимому, был до последнего намеренно введенного URL-адреса, прежде чем какие-либо переигрыватели переместили его. Например:

Предоставлено: somesite.com обнюхивает агента, видит Android и делает document.location + = "/m";

Затем: браузер будет иметь URL-адрес somesite.com/m

Но:, если вы "запрашиваете сайт на рабочем столе", он изменит User-Agent и перепросит с somesite.com

Если:, вы попали прямо на мобильный URL-адрес somesite.com/m, и в этом случае он просто перезагружает somesite.com/m.

Я бы ожидал, что это будет работать с перенаправлением HTTP 301 и 302, я знаю, что он работает с изменениями document.location(по крайней мере, как описано) и предположил бы, что он работает с <meta> обновит.

Ответ 3

Просто хочу отметить, что Chrome теперь не только изменяет User-Agent, но также игнорирует исходный метатег просмотра, если вы "запрашиваете сайт рабочего стола". Таким образом, не нужно больше обнюхивать User-Agent, и вы можете полагаться на изменение в видовом экране, поскольку автоматически будут реагировать на наиболее отзывчивые сайты. Подробнее см. this Изменить.

Ответ 4

Этот фрагмент javascript будет эффективно делать то же самое:

function requestDesktopSite() {
    document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>