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.

태그만 삭제



그냥 삭제하십시오. 이제 Microsoft 및 Mozilla 모두 IE가 compatibility 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의 원칙을 사용하여 웹 사이트를 구축하는 것이 브라우저 특정 해킹보다 항상 더 좋습니다.
  • 좋은 웹페이지 즐겨찾기