IE7 white screen

또터졌다.. 이놈에 브라우저는 대체 어떻게 만든것일까..

일단 이 버그의 원인은 아직 나도 모른다. 명확하게 찝어서 무엇이다 라고 말한다면
CSS Style sheet 의 비표준, 그리고 Javascipt 의 문제점이라고밖에 할 수 없다.
이거 사실 무지하게 골때린것이지만 일단 해결은 했다.
자바스크립트 몇개를 지워냈더니 잘돈다..

원인은 자바스크립트에 있었다.. 그러나 다른페이지들 다 이렇게 나오는데 왜 특정페이지에 한해서만 화이트페이지가 뜨는것일까? 이해할수가 없다.

화이트페이지 현상은 다음과 같다.
특정 URL을 클릭 하였을때 화면이 하얗게 뜨고 완료라고 뜬다.
소스를 열어보면 소스가 와있다. (즉 서버와 통신은 정상적이다)
F5를 누르면 페이지가 출력된다.
그러나 그 링크를 다시 누르면 화이트페이지가 뜬다.

해결은 하였지만 원인없는 해결이니.. 그저 할말이 없게 만드는 브라우저다.
이거때문에 몇시간을 삽질을 했는가

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2006/11/18 05:18 2006/11/18 05:18
, , , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/53

ie7 utf-8 bug 한글주소 요청 버그

IE7 은 UTF8 주소 요청에 대한 문제점을 가지고 있다.
한국의 대다수 웹사이트는 EUCKR을 사용하고 있으며, (사실 UTF8 로 전향하여야 한다)
클릭하거나 입력하는 주소를 IE6 은 기본설정상 UTF8 로 항상 전송하게 되어있다.

IE7 또한 마찬가지 기본설정을 가지고 탄생하였으나 여기에는 치명적인 버그가 있다.
IE6 과 IE7 의 동작구조를 살펴보자!

IE6
1. 사용자  http://웹사이트/한글테스트.html 입력시
2. 서버에 해당 URI 를 요청한다. (UTF-8 로)
3. 서버에 해당 URI 가 없거나 MOD_URL 등의 모듈을 통해 컨버전을 제공하고 있을 경우 (이경우의 수를 MS는 감안하지 않았음)
4. 항상 UTF-8로 보냄이 설정되어있어도 MOD_URL이 REDIRECT해주는 EUCKR의 주소를 허용하고 이를 요청한다.

IE7
1. 사용자  http://웹사이트/한글테스트.html 입력시
2. 서버에 해당 URI 를 요청한다. (UTF-8 로)
3. 서버에 해당 URI 가 없거나 MOD_URL 등의 모듈을 통해 컨버전을 제공하고 있을 경우 (이경우의 수를 MS는 감안하지 않았음), EUCKR로 변환된 주소를 리다이렉트로 반환한다.
4. REDIRECT 되어온 주소가 EUCKR일 경우 이를 다시 UTF-8 로 바꾸고 2단계로 돌아간다. (무한반복)

1번의 요청시 위의 2~4번 무한반복이 약 2천번가량 진행된 후 종료되는것을 확인하였다.
이는 심각하며, 크리티컬한 버그이며, 브라우저의 사용자를 범법자이며, 불량사용자 (DDOS공격으로 간주) 만드는 엄청난 브라우저라는 사실을 잊지말자.

해결방법

현재 SLRCLUB.COM 에는 위와관련한 패치가 적용되어있다.

MODURL의 동작구조는 다음과 같다.

1. 요청받은 URI를 서버가 처리하고 딜리버리를 한다.
2. 만약 실패하였을 경우 -> MODURL 이 동작한다.   (mod_spell 타입의 후킹으로 후처리 기반임)
    1] 캐릭터셋을 디텍팅하고 컨버전이 먹혔을 경우
    2] 해당 URI 로 리다이렉셔닝 한다.  (여기서 IE7은 문제발생)
--> 현실적으로 브라우저가 정상적일 경우 이방법은 가장 효과적인 방법일지도 모른다.
왜냐하면 매 요청마다 변환작업을 하지 않아도 되므로 서버부하가 많이 줄어든다.

패치한 방법은 다음과같다.

MODURL 의 Request 한 주소를
  ap_hook_post_read_request 로 후킹을 변경하고 APR_HOOK_FIRST로 콜을 한다.
따라서 요청이 도달하는 순간 가장 먼저 이 모듈이 가로채어 주소를 변경한다
request_rec->unparsed_uri 의 주소를 재작성하여 서버로 전달한다.

문제점 : 단방향적인것밖에 지원되지 않는다. 따라 서버에 utf8 파일이 혼합되어있을 경우 이를 감지하지 못한다. 무조건 euckr 파일만 찾게된다. 이에대한 롤백을 구현하려면 모듈이 후킹해야하는 부분이 너무 많아진다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2006/11/16 22:47 2006/11/16 22:47
, , , ,
Response
2 Trackbacks , No Comment
RSS :
http://cl.dgtalx.net/rss/response/50


Archives

Calendar

«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30