Chrome의 '데스크톱 사이트 요청'옵션은 어떻게 작동하나요?


94

iOS Google 크롬의 경우 사용자가 "데스크톱 사이트 요청"버튼을 누르면 브라우저가 데스크톱 사이트를 불러 오기 위해 무엇을하나요? 사이트에서 찾고있는 요청에 대한 일종의 헤더 또는 유사한 것을 상상합니다.

답변:


64

유일한 차이점은 User-Agent:요청 의 헤더 라고 생각합니다 .

내 Android 기기에서 Chrome이 보낸 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

첫 번째 단어에서 "Mobile"이라는 단어와 Android 시스템 및 장치에 대한 언급도 있습니다.이를 확인하면 데스크톱 Linux 버전에서 보낸 값과 거의 일치하는 잘못된 정보 (예 : X11 및 x86_64)도 제공됩니다. 크롬.


14
별도의 헤더가 훌륭합니다. 사용자 에이전트 스니핑은 너무 끔찍합니다.
Mu Mind

10
나는 동의한다. 때로는 일부 사이트에서 구현하는 자동 감지 및 리디렉션이 극도로 비생산적이고 악화됩니다.
dsh

5
더 나은 솔루션은 장치 크기, 인터페이스 및 기능을 감지하는 것입니다. CSS 미디어 쿼리는 올바른 방향으로 나아가는 단계입니다.
Brad

1
이 기능은 간단한 UA 전환 및 새로 고침으로 구현되지 않습니다. 문제의 진실은 대부분의 모바일 사이트가 데스크톱 UA 문자열로로드 된 경우 데스크톱으로 다시 전환되지 않는다는 것입니다. 그렇다면 Safari는 원래 요청을 사용합니까? 아니. 원래 모바일 사이트의 URL을 입력 한 경우에도 작동하는 것 같습니다. 모바일 버전의 이름이 결코 표준화되지 않았기 때문에 어떻게 구현되었는지 모르겠지만 간단한 UA 변경보다 더 똑똑한 일이 진행되고 있습니다.
Andrew G

미디어 쿼리에 영향을주는 "데스크톱 사이트 요청"옵션을 트리거하면 "레이아웃 뷰포트"도 변경된다는 점을 지적하고 싶습니다. 레이아웃 뷰포트에 대한 자세한 정보는 모바일 웹 핸드북 을 확인하십시오 .
Rick

19

Chrome이 이제 User-Agent'데스크톱 사이트를 요청'하면 원래 표시 영역 메타 태그를 변경할 뿐만 아니라 무시 한다는 점을 지적하고 싶었습니다 . 따라서 User-Agent더 이상 냄새를 맡을 필요가 없으며 대부분의 반응 형 사이트가 자동으로 수행하므로 뷰포트 변경에 의존 할 수 있습니다. 자세한 내용은 이 변경 사항 을 참조하십시오.


1
감사합니다. 내 자신의 매우 간단한 웹 사이트는 클릭하지 않을 때 매우 다르게 작동하며 CSS에서 미디어 쿼리 만 수행하는 이유를 이해할 수 없습니다.
R Reveley

17

또 다른 약간의 차이점은 리디렉터가 이동하기 전에 요청이 마지막으로 의도적으로 입력 한 URL에 있었던 것으로 보인다는 것입니다. 예를 들면 :

주어진 : somesite.com은 에이전트를 스니핑하고 Android를보고 document.location + = "/ m"을 수행합니다.

그러면 브라우저의 URL은 somesite.com/m이됩니다.

그러나 "데스크톱 사이트를 요청"하면 User-Agent를 변경하고 somesite.com에서 다시 요청합니다.

그렇지 않은 경우 : 처음에 somesite.com/m의 모바일 URL로 직접 이동 한 경우에는 somesite.com/m 만 다시로드됩니다.

나는 이것이 HTTP 301 및 302 리디렉션과 함께 작동 할 것으로 예상하고, document.location 변경 (적어도 설명 된대로)과 함께 작동한다는 것을 알고 있으며 <meta> 새로 고침과 함께 작동한다고 추측 할 것입니다.


이것 으로부터 답을 얻었습니까 ?
Keale 2015

, 주어진 타임 스탬프를 주위에 아마 다른 방법을 @Keale
verbumSapienti

POST 요청이 다른 URL에 대한 GET을 제안하는 302 또는 303을 받으면 사용자가 '데스크톱보기'설정을 변경하면 브라우저가 302/303을 반환 한 원래 URL에 GET 요청을 제출합니다 (POST 매개 변수가 손실 됨). ). Firefox와 Chrome 모두이 작업을 수행하고 IMO는 분명히 일어나야 할 일이 아닙니다.
Jake

-2

이 자바 스크립트 스 니펫은 효과적으로 동일한 작업을 수행합니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.