JSP HTTP 상태 코드


HTTP 요청과 HTTP 응답의 형식은 유사하며 둘 다 다음과 같은 구조를 갖습니다.

  • 상태 줄 + CRLF(캐리지 리턴 및 줄 바꿈)로 시작

  • 0개 또는 여러 줄 헤더 모듈 +CRLF

  • CRLF

  • 와 같은 빈 줄 파일, 쿼리 데이터, 쿼리 출력과 같은 선택적 메시지 본문

예를 들어 서버 응답 헤더는 다음과 같습니다.

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>


상태 줄에는 HTTP 버전, 상태 코드 및 상태 코드에 해당하는 짧은 메시지가 포함됩니다.


다음 표에는 서버에서 반환될 수 있는 HTTP 상태 코드 및 관련 메시지가 나열되어 있습니다.

상태 코드메시지설명
100 계속 요청의 일부만 서버에서 수신되지만 서버에서 거부되지 않는 한 클라이언트는 요청을 계속합니다
101 프로토콜 전환 서버 스위치 프로토콜
200 알았어 요청 확인됨
201 생성됨 요청 시 완료, 새로운 리소스가 생성됩니다
202 수락됨 요청이 수락되었지만 처리되지 않았습니다.
203 신뢰할 수 없는 정보
204 내용 없음
205 콘텐츠 재설정
206 일부 내용
300 객관식 하이퍼링크 테이블 사용자는 하이퍼링크를 선택하여 액세스할 수 있습니다.
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 전제조건 실패 요청한 전제조건이 서버에 의해 거짓으로 평가되었습니다
413 요청 항목이 너무 큼 요청한 엔터티가 너무 커서 서버가 요청 수락을 거부했습니다
414 요청 URL이 너무 깁니다 URL이 너무 길기 때문에 서버가 요청 수락을 거부했습니다."POST" 요청을 "GET" 요청으로 변환하면 대량의 쿼리 정보가 나타납니다
415 지원되지 않는 미디어 유형 미디어 유형이 지원되지 않기 때문에 서버가 요청 수락을 거부했습니다.
417 기대 실패
500 내부 서버 오류 요청이 불완전하고 서버에 예상치 못한 상황이 발생했습니다.
501 구현되지 않음 요청이 불완전하며 서버가 필요한 기능을 제공하지 않습니다
502 나쁜 게이트웨이 요청이 불완전했고 서버가 업스트림 서버로부터 잘못된 응답을 수락했습니다.
503 서비스 이용 불가 요청이 완료되지 않아 서버가 일시적으로 다시 시작되거나 종료됩니다
504 게이트웨이 시간 초과 게이트웨이 시간 초과
505 HTTP 버전은 지원되지 않습니다 서버가 지정된 HTTP 버전을 지원하지 않습니다

HTTP 상태 코드 설정 방법

다음 표에는 HttpServletResponse 클래스에서 상태 코드를 설정하는 데 사용되는 방법이 나열되어 있습니다.

S.N.방법설명
S.N.方法 & 描述
1public void setStatus ( int statusCode )


此方法可以设置任意的状态码。如果您的响应包含一个特殊的状态码和一个文档,请确保在用PrintWriter返回任何内容前调用setStatus方法
2public void sendRedirect(String url)


此方法产生302响应,同时产生一个 Location 头告诉URL 一个新的文档
3public void sendError(int code, String message)


此方法将一个状态码(通常为 404)和一个短消息,自动插入HTML文档中并发回给客户端

1

public void setStatus( int statusCode )


이 메서드는 모든 상태 코드를 설정할 수 있습니다. 응답에 특수 상태 코드와 문서가 포함된 경우 PrintWriter로 항목을 반환하기 전에 setStatus 메소드

js_http_status_codes.jpg

를 호출해야 합니다. 2
<🎜>public void sendRedirect(문자열 URL)<🎜>
<🎜> 이 메소드는 302 응답을 생성하고 URL에 새 문서 <🎜><🎜><🎜><🎜>를 알려주는 Location 헤더도 생성합니다. 3<🎜><🎜>public void sendError(int 코드, 문자열 메시지)<🎜>
<🎜> 이 방법은 상태 코드(일반적으로 404)와 짧은 메시지를 HTML 문서에 자동으로 삽입하고 이를 클라이언트로 다시 보냅니다. <🎜><🎜><🎜><🎜><🎜><🎜> HTTP 상태 코드 프로그램 예 <🎜><🎜>다음 예는 407 오류 코드를 브라우저에 보내고 브라우저는 "인증 필요!!!"라고 알려줄 것입니다. <🎜>
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // 设置错误代码,并说明原因
   response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
<🎜>위의 JSP 페이지에 액세스하면 다음과 같은 결과를 얻을 수 있습니다. <🎜><🎜><🎜>또한 다른 상태 코드를 사용하여 예상치 못한 결과가 나타나는지 확인할 수도 있습니다. <🎜><🎜>