IT이야기2009. 3. 20. 18:49
마이크로소프트의 익스플로러 8 정식 버전이 발표되었다. 익스플로러 7에 비해서는 체감상 조금 가벼워지고, 빨라졌다.
  • 이전버전과의 호환성을 고려한 '호환성 보기'
  • 구글 크롬의 '시크릿 모드'처럼 방문한 URL, 데이터 등을 저장하지 않는 'inPrivate 브라우징'
  • 악성 프로그램, 피싱 사이트 등을 차단하는 'SmartScreen 필터'
  • 소스보기 기능의 개선(줄 표시 등)
  • ...

위와 같은 새로운 기능보다는 Request 헤더를 중심으로 살펴보겠다.

기본 상태의 헤더다. 'MSIE 8.0'이라는 부분이 보인다. IE 7에서는 UA-CPU: Request 헤더를 보냈지만, IE 8에는 없다. (관련글 : MSIE 7.0 이상에서 보내는 UA-CPU 헤더  )

GET / HTTP/1.1
Accept: */*
Referer: __생략__
Accept-Language: ko-KR,en-us;q=0.7,ko;q=0.3.
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

'호환성 보기' 체크했을 때는 브라우저 버전이 'MSIE 7.0'으로 표시되는 것을 볼 수 있다.

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

IE 8, 익스플로러 8

[ 익스플로러 8에서 '호환성 보기'를 클릭했을 때 ]


'IEBlog'의 'The Internet Explorer 8 User-Agent String (Updated Edition)'을 살펴보면, 64비트일 때의 User-Agent 헤더를 볼 수 있다.

[ 64비트 윈도우즈에 64비트 IE ]
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0)

[ 64비트 윈도우즈에 32비트 IE ]
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0)

IE 8은 웹표준을 따르려고 했다. 따라서 웹페이지를 웹표준에 맞게 개발했다면 IE 8, 파이어폭스, 크롬 등에서 거의 동일하게 볼 수 있게 된다. 하지만 이 때문에 IE 7 에 최적화하여 개발된 페이지(즉, 표준을 따르지 않은 페이지)는 IE 8에서 페이지가 깨질 수 있다. 이 때 User-Agent를 판단하여 임시로 IE7에 맞춰서 처리하도록 할 수 있다. 물론 이 방법은 임시 해결을 위한 것이므로, 웹표준에 맞게 페이지를 변경하는 것이 가장 이상적인 방법이 될 것이다.

[ php 예 ]
<?
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0')) {
echo '<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />';
// 또는 header('X-UA-Compatible: IE=EmulateIE7');
}
?>


* 관련글
   - 웹 표준 개발자의 IE8 고려사항.  (2009.3.12, 정찬명 님)

Posted by 좋은진호