IE6 는 HTTP 프로 토 콜 의 동적 압축 chunked 방식 을 지원 하지 않 습 니 다.

단오절 방학 을 앞 두 고 한 항목 의 로그 인 과 등록 기능 을 준비 하여 사용자 의 로그 인 성공 여 부 를 판단 하 는 것 은 로그 인 서버 login. baofeng. net 에 문의 하 는 것 입 니 다. 방문 방식 은 다음 과 같 습 니 다.

 //      ;
function isLoginIn(fn, i) {
  if(cookie.get("LoginIn") == 1) {
     showBannerUserInfo();
  } else {
  var url = "http://login.baofeng.net/?a=checklogin&info=1&callback=" + fn + "&reqid=" + i;
  jsonRequest(url);
  }
}; 

//      
function checkLoginIn(j, i) {
   if(j.status == 1) {
     cookie.put("LoginIn", 1); //1    
     cookie.put("bf_sid", j.bf_sid); // bf_sid
     cookie.put("username", j.userinfo.username);
     cookie.put("email", j.userinfo.email);
     showBannerUserInfo();
   } else {
   showBannerUserLogin();
   }
}; 

그러나 온라인 상에 서 이상 한 일이 발생 했 습 니 다. 내부 테스트 서버 가 모두 OK 의 기능 을 가지 고 외부 네트워크 서버 에 넣 으 면 IE6 브 라 우 저 에 문제 가 생 겼 습 니 다.
제거 방법:
    외부 네트워크 서버 의 코드 를 모두 내부 네트워크 테스트 서버 로 옮 기 고 기능 이 모두 OK 이 며 온라인 서버 에 올 리 는 것 도 문제 입 니 다.
여러 사람 이 재 료 를 주 우 면 화염 이 높아진다.
아 프 지 않 고 죽지 않 는 다 는 원칙 에 따라 문 제 를 계속 찾 아 보 세 요. 현재 이 스 크 립 트 의 JS 가 완전히 로드 되 지 않 았 고 한 단락 에 불 러 오 면 끊 겼 습 니 다. 문 제 를 발견 하면 한 가닥 생기 가 있 는 것 같 습 니 다. 캡 처 도 구 를 통 해 현재 이 base. js 의 반환 code 는 200 이지 만 Content - Length 의 값 이 없습니다. 왜 서버 가 이 값 을 되 돌려 주지 않 는 지 이상 합 니 다.검색 을 통 해 알 수 있 듯 이 웹 페이지 가 보 여 주 는 성능 을 향상 시 키 기 위해 Nginx 서버 는 Gzip 모듈 을 제공 합 니 다. 이 모듈 은 동적 압축 chunked 방식 으로 웹 페이지 반환 의 효율 을 향상 시 킵 니 다. 서버 의 nginx 설정 은 다음 과 같 습 니 다.
#  gzip  ,    gzip    ./config    
gzip on;
gzip_min_length  1100;
gzip_buffers    4 8k;
gzip_types      text/plain;
output_buffers  1 32k;
postpone_output  1460;

상기 모듈 의 매개 변수 설명:
http://www.5gme.com/space-6-do-blog-id-57096.html
반복 적 인 테스트 를 통 해 마침내 이 문제 의 진정한 원인 을 발견 했다.
이번 기능 에 추 가 된 로그 인 인증 서버 도 Nginx 를 이용 하여 로그 인 확인 서 비 스 를 대외 적 으로 제공 합 니 다. 이 서비스 역시 같은 gzip 모듈 을 압축 하여 이 서버 의 gzip 모듈 을 로그아웃 시 켰 습 니 다. IE6 에서 로그 인 등록 상 태 를 판정 할 수 없 는 문제 가 해결 되 었 습 니 다.
보통 HTTP 프로 토 콜 에 서 는 Content - Length 라 는 헤드 를 사용 하여 데이터 의 길 이 를 알려 줍 니 다.그 다음 에 데이터 가 하 행 되 는 과정 에서 Content - Length 의 방식 은 서버 에 모든 데 이 터 를 미리 캐 시 한 다음 에 모든 데 이 터 를 다시 한 번 클 라 이언 트 에 게 보 내야 한다.
    데 이 터 를 만 들 면서 클 라 이언 트 에 게 보 내 려 면 WEB 서버 는 & quot 를 사용 해 야 합 니 다.Transfer-Encoding: chunked"이런 식 으로 Content - Length 를 대체 합 니 다.
"Transfer - Encoding: chunked" 는 이렇게 인 코딩 됩 니 다.
HTTP 
\r
\r
-- \r
HTTP 16 \r
\r
-- , \r
16 \r
XX \r
………… ( ) 0 -- 0 , \r
\r
\r

IE6 는 chunked 방식 의 동적 압축 을 지원 하지 않 기 때문에 IE6 사용자 에 대한 압축 을 포기 하고 Nginx 설정 을 조정 할 수 밖 에 없습니다.
#  gzip  ,    gzip    ./config    
gzip on;
gzip_min_length  1100;
gzip_buffers    4 8k;
gzip_types      text/plain;
gzip_disable    "MSIE [1-6] \.";
output_buffers  1 32k;
postpone_output  1460;

좋은 웹페이지 즐겨찾기