X-UA 호환: 정의 및 웹사이트에 X-UA가 필요하지 않은 이유

x-ua-compatible는 어디에나 있습니다. 매우 인기 있는 웹사이트의 <head>에 나타납니다. 귀하의 웹사이트에 있을 수도 있습니다. 그러나 그것은 무엇입니까?

이 실제 사례는 52바이트 무게의 theguardian.com에서 캡처되었습니다.

<meta http-equiv="X-UA-Compatible" content="IE=Edge">


x-ua-compatible은 무엇을 합니까?



이 태그는 Internet Explorer(IE)에 웹 페이지를 특정 비표준 방식으로 렌더링하도록 지시하는 데 사용됩니다.

IE에는 이전 버전의 브라우저를 사용하는 것처럼 웹 페이지를 볼 수 있는 다양한 문서 모드가 있습니다.

IE 6 및 7(및 기타 이전 브라우저)은 W3C 사양을 제대로 구현하지 않았습니다. 따라서 Microsoft가 (대부분) 사양을 준수하는 IE 8을 출시했을 때 IE 6 및 7용으로 특별히 구축된 사이트는 예상대로 작동하지 않았습니다.

문서 모드는 이 문제에 대한 해결책이었고, x-ua-compatible 메타 태그는 document mode를 선택하는 방법이었습니다.

귀하의 사이트에 이 태그가 꼭 필요하지 않은 이유를 이해하려면 좀 더 자세히 살펴봐야 합니다.

IE=Edge는 무엇을 의미합니까?


IE=edge는 사용 가능한 최신 문서 모드를 사용하도록 IE에 지시합니다. 훌륭하게 들립니다. 우리는 모든 사람이 가능한 최고의 경험을 하기를 원합니다.

그러나 이것은 이미 기본 환경입니다! <!doctype>를 올바르게 선언하면 IE will use the latest document mode. IE 8이 IE 8 모드를 사용한다는 의미입니다. IE 9는 IE 9 모드 등을 사용합니다.

모든IE=edge 기능은 IE가 이미 수행하고 있는 작업을 수행하도록 지시하는 것입니다. 미친 짓이야.

따라서 아무 작업도 수행하지 않습니다. 그렇다면 왜 모든 곳에 있습니까?



내 이론 — 개발자는 IE가 이전 버전에서 페이지를 렌더링할까봐 두려워했습니다document mode. IE를 둘러싼 많은 불확실성이 있었고 이 태그에 대한 문서는 지나치게 복잡했습니다. 후회하는 것보다 안전한 것이 더 낫습니다.

이 태그를 사용하면 IE 8-10에서 호환 모드 버튼이 표시되지 않습니다. If the button was present, it allowed users to toggle between a spec-compliant mode and older document modes — 일부 개발자를 놀라게 했을 수 있습니다.
x-ua-compatible는 영리한 개발자(당신이 모르는 것을 알고 있을 것임)에 의해 템플릿과 프레임워크에 추가되었으며 더 많이 나타날수록 더 필요한 것처럼 보였습니다.

Twitter에서 만든 매우 인기 있는 UI 프레임워크인 부트스트랩recommended using this tag up until 2018.

태그만 삭제



그냥 삭제하십시오. 이제 MicrosoftMozilla 모두 IEcompatibility mode를 입력하지 않도록(및 다른 브라우저가 quirks mode를 입력하지 않도록) doctype을 올바르게 선언할 것을 권장합니다.
<!doctype>를 올바르게 선언하는 것이 중요합니다. 이전 IE 호환성 모드와 관련이 없거나 x-ua-compatible — 어쨌든 그렇게 해야 합니다.

이 코드가 문서의 첫 번째 항목인지 확인하십시오.

<!doctype html>


chrome=1 그리고 좀 더 이상합니다.



때로는 옆에 추가 값이 표시됩니다IE=edge.

다음은 cnn.com에서 발견된 62바이트의 메타 태그X-UA-Compatible입니다.




<!-- DISGUSTING -->
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<!-- Kill it with fire -->





역겹지 않나요?

이는 IE 6-8이 브라우저 내부의 브라우저처럼 IE 내부의 Chromium 자바스크립트 및 렌더링 엔진을 실행하는 브라우저 확장 프로그램인 Chrome 프레임을 사용하도록 지시하는 데 사용됩니다.

이것은 Google Wave 의 전신인 Google Docs 를 사용하는 레거시 브라우저용 솔루션이었습니다.
IE 6-8가 설치된 Chrome Frame 사용자는 해당 태그를 추가하면(존재하는 경우) 더 나은 경험을 할 수 있습니다!

Chrome 프레임이 설치된 사이트에서 IE 6-8을 지원해야 합니까?



사이트에서 레거시 브라우저를 지원해야 합니까? 어려운 질문입니다. 최신 브라우저에서 사용자의 보안을 희생하지 않으면서 최대한 많이 지원해야 한다고 생각합니다.

~0.04% of web users still use IE 6-8. 그것은 수백만 명의 사람들이며 귀하의 웹사이트에 대한 그들의 액세스가 아무 생각 없이 무시되어서는 안 됩니다.

고려해야 할 몇 가지 사항이 있습니다.
  • Google dropped support for Chrome Frame in January 2014 and recommends it no longer be used.
  • 귀하의 사이트는 IE 6-8 사용자가 전혀 액세스하지 못할 수 있습니다. 대부분의 웹(dev.to 포함)은 그렇지 않습니다. 사이트에서 https를 강제로 사용하고 TLS 1.0을 지원하지 않는 경우 then IE 6-8 users cannot access your content anyway - x-ua-compatible를 중복으로 만듭니다.
  • IE 6~8을 지원하기로 선택한 경우 오랫동안 지원되지 않았기 때문에 해당 사용자에게 Chrome 프레임이 설치되어 있지 않을 것이라고 가정해야 합니다.
  • progressive enhancement의 원칙을 사용하여 웹 사이트를 구축하는 것이 브라우저 특정 해킹보다 항상 더 좋습니다.
  • 좋은 웹페이지 즐겨찾기