다음 시나리오를 안정적으로 재현 할 수 있습니다.
- 서버에 AJAX 요청을 보내는 작은 HTML 페이지 만들기 (HTTP POST 사용)
- 네트워크 연결을 끊고 다시 연결
- IE가 실패 후 생성하는 패킷 모니터링
네트워크 연결에 실패한 후 IE는 다음 AJAX 요청을하지만 HTTP 게시를 수행 할 때 본문이 아닌 HTTP 헤더 만 보냅니다 . 이것은 단지 부분적인 요청이기 때문에 서버에 모든 종류의 문제를 일으 킵니다. Bing에서이 문제를 해결하면 AJAX를 사용하는 "무작위 서버 오류"또는 설명 할 수없는 AJAX 오류에 대해 불평하는 많은 사람들을 찾을 수 있습니다.
대부분의 다른 브라우저와 달리 IE는 항상 두 개의 TCP / IP 패킷으로 HTTP POST를 보냅니다. 헤더와 본문은 별도로 전송됩니다. 실패 직후의 경우 IE는 헤더 만 보냅니다 . IE는 페이로드를 보내지 않으며 서버는 결국 Timeout으로 응답합니다.
그래서 내 질문은-왜 이런 식으로 작동합니까? HTTP 사양에 따라 잘못된 것으로 보이며 다른 브라우저는 이러한 방식으로 작동하지 않습니다. 단순히 버그입니까? 확실히 이것은 심각한 AJAX 기반 웹 애플리케이션에 혼란을 야기합니다.
참조 정보 :
1 분 미만의 HTTP 연결 유지 제한 시간에 의해 트리거되는 유사한 문제가 있으며 여기에 설명되어 있습니다.