서블릿 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 | 게이트웨이 시간 초과 | 게이트웨이 시간 초과입니다. |
505 | HTTP 버전은 지원되지 않습니다 | 서버가 "HTTP 프로토콜" 버전을 지원하지 않습니다. |
HTTP 상태 코드 설정 방법
서블릿 프로그램에서 HTTP 상태 코드를 설정하려면 다음과 같은 방법을 사용할 수 있습니다. 이러한 메소드는 HttpServletResponse 객체를 통해 사용할 수 있습니다.
일련번호 | 방법 및 설명 | < /tr>||||||||
---|---|---|---|---|---|---|---|---|---|
1 | public void setStatus ( int statusCode )
PrintWriter 를 사용하여 실제로 무엇이든 반환하기 전에 setStatus를 호출해야 합니다. | ||||||||
2 | public void sendRedirect(String url)이 메소드는 The와 함께 302 응답을 생성합니다. 새 문서 URL의 위치 헤더입니다. | ||||||||
3 | public 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 |
// 导入必需的 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 |