JSP-HTTP 상태 코드
이 장에서는 JSP의 Http 상태 코드에 대해 설명합니다. HTTP 요청과 HTTP 응답 메시지의 형식은 유사하며 다음과 같은 구조를 갖습니다.
초기 상태 표시 줄 + CRLF (Carriage Return + Line Feed ie. New Line)
0 개 이상의 헤더 행 + CRLF
빈 줄 즉. CRLF
파일, 쿼리 데이터 또는 쿼리 출력과 같은 선택적 메시지 본문입니다.
예를 들어, 서버 응답 헤더는 다음과 같습니다.
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>
상태 표시 줄은 HTTP version (HTTP/1.1 in the example), 상태 코드 (예에서는 200) 및 상태 코드에 해당하는 매우 짧은 메시지 (OK in the example).
다음 표는 웹 서버에서 반환 될 수있는 HTTP 상태 코드 및 관련 메시지를 나열합니다.
암호 | 메시지 | 기술 |
---|---|---|
100 | 계속하다 | 요청의 일부만 서버에 수신되었지만 거부되지 않은 한 클라이언트는 요청을 계속해야합니다. |
101 | 스위칭 프로토콜 | 서버는 프로토콜을 전환합니다. |
200 | 확인 | 요청은 OK입니다 |
201 | 만들어진 | 요청이 완료되고 새 리소스가 생성됩니다. |
202 | 수락 됨 | 요청이 처리를 위해 승인되었지만 처리가 완료되지 않았습니다. |
203 | 신뢰할 수없는 정보 | |
204 | 콘텐츠 없음 | |
205 | 콘텐츠 재설정 | |
206 | 부분 콘텐츠 | |
300 | 다중 선택 | 링크 목록 사용자는 링크를 선택하고 해당 위치로 이동할 수 있습니다. 최대 5 개의 주소. |
301 | 영구적으로 이동 | 요청한 페이지가 새 URL로 이동되었습니다. |
302 | 녹이다 | 요청한 페이지가 일시적으로 새 URL로 이동했습니다. |
303 | 기타보기 | 요청한 페이지는 다른 URL에서 찾을 수 있습니다. |
304 | 수정되지 않음 | |
305 | 프록시 사용 | |
306 | 미사용 | 이 코드는 이전 버전에서 사용되었습니다. 더 이상 사용되지 않지만 코드는 예약되어 있습니다. |
307 | 임시 리디렉션 | 요청한 페이지가 일시적으로 새 URL로 이동했습니다. |
400 | 잘못된 요청 | 서버가 요청을 이해하지 못했습니다. |
401 | 승인되지 않음 | 요청 된 페이지에는 사용자 이름과 비밀번호가 필요합니다. |
402 | 지불 필요 | 아직이 코드를 사용할 수 없습니다. |
403 | 금지 | 요청한 페이지에 대한 액세스가 금지되어 있습니다. |
404 | 찾을 수 없음 | 서버가 요청 된 페이지를 찾을 수 없습니다. |
405 | 비 허가 된 방식 | 요청에 지정된 방법이 허용되지 않습니다. |
406 | 허용하지 않는다 | 서버는 클라이언트가 허용하지 않는 응답 만 생성 할 수 있습니다. |
407 | 프록시 인증 필요 | 이 요청을 처리하려면 먼저 프록시 서버로 인증해야합니다. |
408 | 요청 시간 초과 | 요청이 서버가 대기 할 준비가 된 것보다 오래 걸렸습니다. |
409 | 충돌 | 충돌로 인해 요청을 완료 할 수 없습니다. |
410 | 지나간 | 요청한 페이지는 더 이상 사용할 수 없습니다. |
411 | 필요한 길이 | "Content-Length"가 정의되지 않았습니다. 서버는 요청이 없으면 요청을 수락하지 않습니다. |
412 | 전제 조건 실패 | 요청에 제공된 전제 조건은 서버에서 false로 평가되었습니다. |
413 | 엔터티가 너무 큼 요청 | 요청 엔터티가 너무 크기 때문에 서버가 요청을 수락하지 않습니다. |
414 | 요청 URL이 너무 깁니다. | URL이 너무 길기 때문에 서버가 요청을 수락하지 않습니다. 이것은 "post"요청을 긴 쿼리 정보가있는 "get"요청으로 변환 할 때 발생합니다. |
415 | 지원되지 않는 미디어 유형 | 미디어 유형이 지원되지 않기 때문에 서버가 요청을 수락하지 않습니다. |
417 | 기대 실패 | |
500 | 인터넷 서버 오류 | 요청이 완료되지 않았습니다. 서버가 예기치 않은 조건을 충족했습니다. |
501 | 구현되지 않음 | 요청이 완료되지 않았습니다. 서버가 필요한 기능을 지원하지 않았습니다. |
502 | 나쁜 게이트웨이 | 요청이 완료되지 않았습니다. 서버가 업스트림 서버로부터 잘못된 응답을 받았습니다. |
503 | 서비스 불가 | 요청이 완료되지 않았습니다. 서버가 일시적으로 과부하 또는 다운되었습니다. |
504 | 게이트웨이 시간 초과 | 게이트웨이 시간이 초과되었습니다. |
505 | HTTP 버전이 지원되지 않음 | 서버는 "http protocol" 버전. |
HTTP 상태 코드를 설정하는 방법
다음 메소드를 사용하여 서블릿 프로그램에서 HTTP 상태 코드를 설정할 수 있습니다. 이러한 메서드는 HttpServletResponse 개체 와 함께 사용할 수 있습니다 .
S. 아니. | 방법 및 설명 |
---|---|
1 | public void setStatus ( int statusCode ) 이 메서드는 임의의 상태 코드를 설정합니다. setStatus 메소드는 int (상태 코드)를 인수로 사용합니다. 응답에 특수 상태 코드와 문서가 포함되어 있으면 반드시 전화하십시오.setStatusPrintWriter를 사용하여 실제로 콘텐츠를 반환하기 전에 . |
2 | public void sendRedirect(String url) 이 메서드 는 새 문서의 URL을 제공 하는 Location 헤더 와 함께 302 응답을 생성합니다 . |
삼 | public void sendError(int code, String message) 이 메서드는 HTML 문서 내에서 자동으로 서식이 지정되고 클라이언트로 전송되는 짧은 메시지와 함께 상태 코드 (일반적으로 404)를 보냅니다. |
HTTP 상태 코드 예
다음 예는 407 오류 코드가 클라이언트 브라우저로 전송되는 방법을 보여줍니다. 그 후 브라우저에 "Need authentication!!!" 메시지.
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// Set error code and reason.
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
다음과 같은 출력을 받게됩니다.
HTTP Status 407 - Need authentication!!!
type Status report
message Need authentication!!!
description The client must first authenticate itself with the proxy (Need authentication!!!).
Apache Tomcat/5.5.29
HTTP 상태 코드에 익숙해 지려면 다른 상태 코드와 설명을 설정하십시오.