평범한 연구소

[JSP|Servlet] 에러 페이지 본문

Pront/Javascript

[JSP|Servlet] 에러 페이지

soyeonisgood 2022. 10. 2. 17:19

HTTP 응답 코드

  • 1xx : 정보 제공
  • 2xx: 성공적인 응답
  • 3xx: 리다이렉트
  • 4xx: 클라이언트 에러
  • 5xx: 서버 에러

 

4xx (클라이언트 에러)

400 Bad Request 잘못된 요청. 서버가 요청의 구문 인식하지 못함.
401 Unauthorized 권한 없음. 이 요청은 인증이 필요. 서버는 로그인이 필요한 페이지에 대해 이 요청 제공 가능.
403 Forbidden 금지. 서버가 요청 거부. ex) 사용자가 리소스에 대한 필요 권한 갖고 있지 않음.
404 Not Found 서버가 요청한 페이지(Resource)를 찾을 수 없다. ex) 서버에 존재하지 않는 페이지에 대한 요청.
405 Method Not Allowed 허용되지 않는 방법. 요청에 지정된 방법을 사용할 수 없다. ex) POST 방식으로 요청받는 서버에 GET 요청 보내는 경우.
406 Not Acceptable 허용되지 않음. 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
407 Proxy Authentication 프록시 인증 필요. 401과 비슷하지만 요청자가 프록시를 사용하여 인증해야함. 요청자가 사용할 프록시를 가리키는 것이기도 한다.
408 Request Timeout 요청 시간 초과. 서버의 요청 대기가 시간을 초과.
409 Conflict 현재 서버의 상태와 충돌.
410 Gone 요청한 콘텐츠가 서버에서 영구적으로 삭제되었고, 전달해 줄 수 있는 주소도 존재하지 않음.
429 Too Many Requests 사용자가 지정된 시간에 너무 많은 요청 보냄.

 

5xx (서버 에러)

500 Internal Server Error 내부 서버 오류. 서버에 오류가 발생하여 요청 수행할 수 없음.
501  Not Implemented 요청은 서버에서 지원되지 않으므로 처리할 수 없음.
502 Bad Gateway 서버가 요청을 처리하는 데 필요한 응답 얻기 위해 게이트웨이로 작업하는 동안 잘못된 응답 수신했음을 의미.
503 Service Unavailable 서버가 요청을 처리할 준비가 되지 않았다. 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸린 서버.
504 Gateway Timeout 이 오류 응답은 서버가 게이트웨이 역할을 하고 있으며 적시에 응답 받을 수 없을 때.
505 HTTP Version Not Supported 요청에 사용된 HTTP 버전은 서버에서 지원되지 않음.

 

에러 코드별 에러 처리

  • web.xml 
	<error-page>
		<error-code>404</error-code>
		<location>/error/error404.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/error/error500.jsp</location>
	</error-page>

 

  • 실행할.jsp
    • 실행할 jsp는 GET방식. user.jsp는 POST 방식으로 파라미터 받음. (404)
    • test.jsp 는 존재하지 않음. (500)
<p>
	<a href="user.jsp">확인 1</a>
</p>
<p>
	<a href="test.jsp">확인 2</a>
</p>

 

  •  error404.jsp
    • response.setStatus(HttpServletResponse.SC_OK);
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%
	response.setStatus(HttpServletResponse.SC_OK);
		// IE 등을 자체 에러 페이지를 출력하며, 개발자가 설정한 에러 페이지 정보가 출력되지 않음.
		// 에러가 발상핼때 출력되는 페이지가 아닌 정상 페이지로 설정
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

<div>
	<p>요청하신 URL은 존재하지 않습니다.</p>
</div>

</body>
</html>
  • error500.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

<div>
	<p>시스템 점검중입니다. 지금은 서비스가 불가능합니다.</p>
</div>

</body>
</html>