IE 7 이미지 다운로드 버그
우선, 이 현상이 저만 있는 것인지... 매우 궁금합니다. 혹시나, 이 글을 읽으시는 분들은 아래의 URL 을 눌러보시고 IE 7이 종료되는지 확인을 부탁드립니다. 결과를 댓글까지 남겨주신다면 더욱 고맙겠습니다. ^^
아래의 링크를 누르면 IE 7이 종료됩니다.
http://msdn.microsoft.com/msdnmag/issues/07/05/WPF/default.aspx?print=true
개인적으로, 종종 포탈 사이트의 특정 페이지를 들어가기만 하면 IE 7이 다운되는 현상을 경험하곤 했었습니다. 뭐 그다지 중요한 페이지가 아니었기 때문에 - 또한 귀찮기도 해서 그냥 넘어가곤 했는데요. 왠지 오늘은, 꼭 이 문제를 풀어봐야 겠다는 생각이 들어서... 이렇게 결과를 써봅니다.
우선, 위의 페이지가 IE 7 자체의 코드의 결함으로 인한 것인지....? 아니면 3rd-party 업체에서 설치된 무수한 브라우저 확장 객체 들로 인한 것인지를 알아야 할 필요가 있었습니다. 방법은 2가지이죠. 브라우저 옵션에서 확장 기능을 끄거나, 해당 브라우저가 예기치 못한 오류로 종료할 때 물어보는 "Debug" 버튼을 눌러서 스택을 보는 방법이 있습니다.
스택을 확인해 보니, 다음과 같은 정보들을 얻을 수 있었습니다.
위의 정보로 알 수 있듯이, 순수 IE 7에서 제공되는 코드만으로도 오류가 나고 있으며,,, urlmon.dll 의 역할로 볼 때 특정 리소스를 다운로드 하는데 문제가 있다는 것을 예상할 수 있었습니다.
오호... 그렇다면 도대체 어떤 자원을 다운로드 할 때 문제가 있는 것인지... 다시 해당 페이지를 로드하고 다운이 되는 시점까지의 네트워크 패킷을 캡쳐해보기로 했습니다. 마지막으로 나오는 리소스 위치는 다음과 같았습니다.
아래의 링크를 누르면, 브라우저가 무한 대기에 빠집니다.
http://msdn.microsoft.com/msdnmag/issues/07/05/WPF/fig01
이번에는 위의 URL 만을 브라우저에 입력하고 네트워크 패킷을 해봤습니다. 그랬더니, 다음과 같은 "GET" 요청과 response 가 무한 반복되는 현상이 발생하고 있었습니다.
================ 요청 ================
GET /msdnmag/issues/07/05/WPF/fig01/ HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; Media Center PC 5.0; .NET CLR 3.5.20404)
Host: msdn.microsoft.com
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ko
UA-CPU: x86
Connection: Keep-Alive
================ 응답 ================
HTTP/1.1 301 Moved Permanently
Date: Wed, 09 May 2007 23:55:29 GMT
Server: Microsoft-IIS/6.0
P3P: CP='ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI'
level: C8
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Location: http://msdn.microsoft.com/msdnmag/issues/07/05/WPF/fig01/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 5630
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Url Redirection</title>
<meta name="ROBOTS" content="NOINDEX" />
<style type="text/css">
body { font-family: Verdana;font-size: small ;background: white;background-color: White; }
.BlackHyperlinkTextWithLeftPad { color: Black;text-decoration: none;padding-right: 10px;padding-left: 10px;font-size: x-small ; }
.BlackHyperlinkText { color: Black;text-decoration: none;padding-right: 10px;font-size: x-small ; }
.InverseText { color:White;text-decoration: none;padding-right: 9px;font-size: x-small ; }
; 중간 생략
</div>
<br/>
<table id="ContentTable" class="DefaultTable" border="0">
<tr>
<td id="Message">Message</td>
</tr>
</table>
</form>
</body>
</html>
IE 6의 경우에도 위의 "fig01" 자원을 요청하면 무한 루프 현상이 발생하기는 하지만, 그 자원을 포함한 페이지를 방문했을 때 해당 이미지가 보이지만 않을 뿐 비정상 종료하는 현상은 발생하지 않았습니다.
참고로, 저는 2대의 물리 컴퓨터와 1대의 VPC 에서 테스트 했으며 환경은 다음과 같습니다.
물리 컴퓨터 A: IE 7, Vista for x64, .NET 3.5
물리 컴퓨터 B: IE 7, Windows 2003 for x64, .NET 3.0
가상 컴퓨터 C: IE 6, Windows 2003 for x86, .NET 2.0
[내용 추가: 2007-05-10]
Vista for x86 이 설치된 VPC 에서 테스트를 해보았더니, 비정상 종료 현상이 발생하지 않았습니다. 그렇다면 이제 남은 가능성은 Vista for x64 버전에서의 IE 7인데... 혹시 이와 같은 시스템을 구성하신 분은 테스트 결과 좀 알려주셨으면 좋겠군요. ^^