주요글: 도커 시작하기
반응형
IE를 이용해서 웹 사이트를 개발하다보면 서버에서 생성한 응답 화면이 아닌 IE에서 자체적으로 제공하는 HTTP 오류 메시지가 출력될 때가 있다. 예를 들어, 500에러가 발생할 경우 /error/500.html을 출력하도록 설정했는데 파이어폭스나 크롬에서는 올바르게 에러 화면이 출력되는데 반해 IE에서는 아래 그림과 같은 화면이 출력되는 경우가 있다.


IE에서 도구 -> 인터넷 옵션 -> 고급 탭 -> 'HTTP 오류 메시지 표시' 옵션을 해제하면 IE가 제공하는 에러 메시지 대신 서버에서 생성한 응답 결과가 보이긴 하지만, 사이트를 접속하는 모든 사람들이 이 옵션을 해제했을 거라는 보장이 없다.

실제로 IE는 다음의 두 조건이 충족될 때 자체 오류 메시지 화면을 표시한다.
  • 응답의 상태 코드가 404나 500과 같은 에러 코드이고,
  • 전체 응답 결과 데이터의 길이가 513 바이트 보다 작을 때
따라서, 서버에서 생성하는 에러 페이지의 길이가 513 바이트 이상이 되도록 하면 IE가 제공하는 오류 메시지 화면이 출력되지 않도록 할 수 있다. 예를 들어, JSP의 에러 페이지에서는 아래 코드와 같이 불필요한 주석을 코드에 추가함으로써 응답 결과의 길이가 513 페이지가 넘도록 하면 된다.

<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page isErrorPage = "true" %>
<html>
<head><title>예외 발생</title></head>
<body>
...
...
</body>
</html>
<!--
만약 에러 페이지의 길이가 513 바이트보다 작다면,
인터넷 익스플로러는 이 페이지가 출력하는 에러 페이지를 출력하지 않고
자체적으로 제공하는 'HTTP 오류 메시지' 화면을 출력할 것이다.
만약 에러 페이지의 길이가 513 바이트보다 작은데
에러 페이지의 내용이 인터넷 익스플로러에서도 올바르게 출력되길 원한다면,
응답 결과에 이 주석과 같은 내용을 포함시켜서
에러 페이지의 길이가 513 바이트 이상이 되도록 해 주어야 한다.
참고로 이 주석은 456바이트이다.
-->

참 해괴한 건, 영문 IE에서 'HTTP 오류 메시지' 옵션의 이름이 'Friendly Error Messages'라는 것이다. 도대체 뭐가 'friendly' 하다는 건지 모르겠다.

+ Recent posts