IE6 + XHR + gzip + “no-cache” 버그

XE 개발 도중 발견한 IE6의 버그입니다.

모든 IE6에서 발생하는 것은 아니지만, 일부에서는 분명 발생하고 있습니다. 관련한 버그 리포팅을 받고, 테스트용으로 똑같은 IETester를 WindowsXP SP3와 Windows7에 각각 설치했었는데, XP에서는 발생하지 않았고 Windows7에서는 발생했습니다. 해외에서도 비슷한 사례가 보고된 바 있습니다. 단, 해외와는 달리 frame을 포함하지 않아도 발생한다는 것이 저희가 발견한 사례입니다.

버그 발생 조건은 이렇습니다.

  1. IE6 사용
  2. XHR로 컨텐트 요청
  3. 서버에서 gzip 압축으로 컨텐트를 전송하며, Cache-Control 헤더에 no-cache, no-restore 등의 값을 설정했을 때

혹시나 싶어 gzip 압축 전송 옵션을 사용하지 않았더니 아무런 문제없이 정상동작하는 것을 확인했습니다.

해결책을 여러 가지 방법으로 찾아보았으나 결국 ‘IE6의 버그’라는 말만 있을 뿐 마땅한 대안은 없는 듯 합니다. 안 그래도 느린 IE6인데, 성능을 높이기 위한 gzip 전송마저 못하게 한다면 더 느려질 수 밖에 없습니다.

IE6를 업그레이드 해야할 이유가 하나 더 늘었습니다.

  1. 후~ 정말이지 정 떨어지는 브라우저예요ㅋ
    특히 IE6 은 윈도우즈 업데이트에 따라 많이 바뀌더러구요.
    저희 회사에서도 몇가지 테스트가 진행되었는데, 보안 업데이트 중 어떤 것을 받으면 비약적으로 성능이 좋아지더러구요. 왜 보안 업데이트에 그런 것이 바뀌는지 모르겠지만..

    1. 대체적으로 IE 계열이 다 그렇지만, 그 중에서도 IE6는 정말…. -_-;;
      얼른 IE6가 사라졌으면 좋겠습니다. ㅎㅎ

      1. 우연히 들어왔는데 고니님 블로그네요. ^^
        이 글을 일찍 봤더라면 2010년 8월경에 제가 고생을 들했을텐데요. ㅎㅎ

  2. 혹시, gzip 압축 전송할때 xxxx.js?234234 이런식으로 파라메터 붙이셨나요?
    물음표 뒤에 3자가 넘어가면, 일부 IE6에서 gzip 해석 자체를 못합니다.
    혹시 이문제는 아닐런지..

    1. 아니 우리는 안 붙이고 사용하거든.
      XHR 전송에서 나타난 문제였어. 말한 부분은 한번 테스트해봐야겠다 ㅎㅎ

Leave a Reply