저작권 안내: 저작권자표시 Yes 상업적이용 No 컨텐츠변경 No

스프링5 입문

JSP 2.3

JPA 입문

DDD Start

인프런 객체 지향 입문 강의

'IE Friendly Error Messages'에 해당되는 글 1건

  1. 2009.01.29 IE의 HTTP 오류 메시지(Friendly Error Message) (3)
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' 하다는 건지 모르겠다.

Posted by 최범균 madvirus

댓글을 달아 주세요

  1. 2010.09.08 14:35 신고  댓글주소  수정/삭제  댓글쓰기

    이런...수가...있었군요....

  2. 몽상귀 2011.06.07 16:25 신고  댓글주소  수정/삭제  댓글쓰기

    오래된 글이지만, 조건 부분이 실제 내용과 다르기 때문에 글 남깁니다.

    에러 메세지에 관련된 아티클
    http://support.microsoft.com/kb/294807/en-us
    임계치에 관련된 아티클
    http://support.microsoft.com/kb/218155/EN-US

  3. 태은 2013.02.06 10:14 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다.^^