서블릿 HTTP 상태 코드


HTTP 요청과 HTTP 응답 메시지의 형식은 유사하며 구조는 다음과 같습니다.

  • 초기 상태 줄 + 캐리지 리턴 및 라인 피드(캐리지 리턴 + 줄 바꿈)

  • 0개 이상의 제목 줄 + 캐리지 리턴 및 줄 바꿈

  • 빈 줄, 즉 캐리지 리턴 및 줄 바꿈

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

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

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

상태 줄에는 HTTP 버전(이 경우 HTTP/1.1), 상태 코드(이 경우 200) 및 상태 코드에 해당하는 짧은 메시지(이 경우 OK)가 포함됩니다.

다음은 웹 서버에서 반환될 수 있는 HTTP 상태 코드 및 관련 정보 목록입니다.

코드메시지설명
100계속 서버가 요청의 일부만 수신했지만 거부되지 않은 한 클라이언트는 요청을 계속해야 합니다.
101전환 프로토콜서버 전환 프로토콜입니다.
200확인요청이 성공했습니다.
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"가 정의되지 않았습니다. 서버는 Content-Length 없이 클라이언트가 보낸 요청 정보를 처리할 수 없습니다.
412전제조건 실패요청에 제공된 전제조건이 서버에서 거짓으로 평가되었습니다.
413요청 엔터티가 너무 큼요청 엔터티가 너무 커서 서버가 요청을 수락하지 않습니다.
414요청 URL이 너무 김URL이 너무 길어 서버가 요청을 수락하지 않았습니다. "게시물" 요청을 긴 쿼리 정보가 포함된 "가져오기" 요청으로 변환할 때 발생합니다.
415지원되지 않는 미디어 유형 지원되지 않는 미디어 유형으로 인해 서버가 요청을 수락하지 않았습니다.
417예상 실패
500내부 서버 오류대단한 요청입니다. 서버에 예상치 못한 상황이 발생했습니다.
501구현되지 않음요청이 완료되지 않았습니다. 서버가 필요한 기능을 지원하지 않습니다.
502잘못된 게이트웨이요청이 완료되지 않았습니다. 서버가 업스트림 서버로부터 잘못된 응답을 받았습니다.
503서비스를 이용할 수 없습니다요청이 완료되지 않았습니다. 서버가 일시적으로 과부하되었거나 다운되었습니다.
504게이트웨이 시간 초과게이트웨이 시간 초과입니다.
505HTTP 버전은 지원되지 않습니다서버가 "HTTP 프로토콜" 버전을 지원하지 않습니다.

HTTP 상태 코드 설정 방법

서블릿 프로그램에서 HTTP 상태 코드를 설정하려면 다음과 같은 방법을 사용할 수 있습니다. 이러한 메소드는 HttpServletResponse 객체를 통해 사용할 수 있습니다.

< /tr>
일련번호방법 및 설명
1public void setStatus ( int statusCode )
序号方法 & 描述
1public void setStatus ( int statusCode )
该方法设置一个任意的状态码。setStatus 方法接受一个 int(状态码)作为参数。如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。
2public void sendRedirect(String url)
该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。
3public void sendError(int code, String message)
该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息。
이 메소드는 임의의 상태 코드를 설정합니다. setStatus 메소드는 int(상태 코드)를 매개변수로 승인합니다. 반응에 특수 상태 코드와 문서가 포함되어 있는 경우
PrintWriter

를 사용하여 실제로 무엇이든 반환하기 전에 setStatus를 호출해야 합니다.

2public void sendRedirect(String url)이 메소드는 The와 함께 302 응답을 생성합니다. 새 문서 URL의

위치

헤더입니다.
3public void sendError(int code, String message)

이 메소드는 상태 코드(보통 404) 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 상태 코드 예시
<🎜>다음 예시는 407 오류 코드를 클라이언트 브라우저로 보내고 브라우저는 다음을 표시합니다. "인증이 필요합니다!!!"라는 메시지가 뜹니다. <🎜>
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

// 扩展 HttpServlet 类
public class showError extends HttpServlet {
 
  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置错误代码和原因
      response.sendError(407, "Need authentication!!!" );
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}
<🎜>이제 위의 서블릿을 호출하면 다음과 같은 결과가 표시됩니다. <🎜>< /테이블><🎜>

HTTP 상태 407 - 인증 필요!!!

<🎜>입력 상태 보고서<🎜><🎜>메시지 인증이 필요합니다!!!<🎜><🎜>설명 클라이언트는 먼저 프록시로 자신을 인증해야 합니다(인증 필요!!!).<🎜>

Apache Tomcat/5.5.29