[어느 게임회사의 흔한 404 Not Found 페이지.png]
4. 에러 처리
4.1 에러 처리의 개요
- 에러가 발생하면 개발자를 위해 소스 코드 및 스택 추적 정보가 화면에 노출됨
- 보안성 향상 및 사이트를 방문하는 사용자들에게 친숙한 안내 화면 제공
4.2 http 상태 코드
에러 코드 |
의미 |
설명 |
1xx |
Informational (정보) |
요청을 받고 처리 중에 있음 |
2xx |
Success (성공) |
요청을 정상적으로 처리함 |
3xx |
Redirection (리디렉션) |
요청 완료를 위해 추가 동작이 필요함 |
4xx |
Client Error (클라이언트 오류) |
클라이언트 요청을 처리할 수 없어 오류 발생 |
5xx |
Server Error (서버 오류) |
서버에서 처리를 하지 못하여 오류 발생 |
주요 상태코드
상태 코드 |
메세지 |
설명 |
200 |
OK |
요청 정상 처리 |
400 |
Bad Request |
클라이언트의 요청 구문이 잘못됨 |
401 | Unauthorized | 요청 처리를 위해 HTTP 인증 정보가 필요함 |
403 |
Forbidden |
접근 금지 응답. Directory Listing 요청(서버 파일 디렉토리 목록 표시) 및 관리자 페이지 접근 등을 차단하는 경우의 응답(파일 시스템 퍼미션 거부, 허가되지 않은 IP 주소를 통한 엑세스의 거부 등). |
404 |
Not Found |
클라이언트가 요청한 리소스가 서버에 없음 |
500 |
Internal Server Error |
서버에서 클라이언트 요청을 처리 중에 에러가 발생함 |
503 |
Service Unavailable |
· 서버가 일시적으로 요청을 처리할 수 없음 · 서버가 과부하 상태이거나 점검중이므로 요청을 처리할 수 없는 상태 |
4.3 실습예제
4.3.1 /error/error.jsp (기본적인 에러 페이지)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% int a = Integer.parseInt(request.getParameter("num")); %>
a: <%= a %>
</body>
</html>
4.3.2 web.xml 에 코드 추가
<error-page>
<error-code>404</error-code>
<location>/error/404code.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500code.jsp</location>
</error-page>
4.3.3 /error/404code.jsp
<h2>요청하신 주소를 찾을 수 없습니다.</h2>
<p>
잠시 후에 다시 한번 시도해 주시기 바랍니다.
동일한 문제가 지속적으로 발생할 경우 고객센터로 문의하여 주십시오.
</p>
4.3.4 /error/500code.jsp
<h2>이용에 불편을 드려 죄송합니다.</h2>
<p>
잠시 후에 다시 한번 시도해 주시기 바랍니다.
동일한 문제가 지속적으로 발생할 경우 고객센터로 문의하여 주십시오.
</p>