(3) IIS 서비스 설정하기
2009. 3. 28. 13:29
HTTP Status code (상태 코드)
HTTP 상태 코드는 웹 서버가 웹 브라우저의 요청을 수신하여 처리한 결과를 나타내는 3자리로 구성된 코드이다. 다음과 같이 5종류의 상태코드로 분류하고 있다.
[표 1] HTTP 상태 코드 분류
상태 코드 | 의미 | 설명 |
---|---|---|
1xx | 정보 제공 메시지 (Informational) | 클라이언트의 요청이 접수되어 처리되고 있음을 알려준다. |
2xx | 성공 (Success) | 요청의 처리가 성공하였음을 알려준다. |
3xx | 리다이렉션 (Redirection) | 사용자 요구를 처리하기 위해 추가적인 처리가 필요하다. |
4xx | 클라이언트 에러 (Client error) | 클라언트의 요청이 불완전하여 잘못되었거나, 구문 오류, 기타 클라이언트의 오류가 발생하여 요청 수행을 실패하였다. |
5xx | 서버 에러 (Server error) | 서버 에러가 발생하여 요청을 처리할 수 없다. |
[표 2] HTTP/1.1 상태 코드
상태 코드 | 의미 | 설명 |
---|---|---|
100 | Continue | 클라이언트는 요청의 전송을 계속 진행한다. |
101 | Switching Protocols | 서버는 Upgrade 헤더 필드에 명시된 프로토콜로 교환하기 위한 클라이언트 요청에 따르고 있다. |
200 | Ok |
클라이언트의 요청이 성공적이었으며, 서버는 요청한 데이터를 포함하여 응답한다. HEAD 요구한 자원에 상응하는 Entity-Header 필드는 Message-Body 없이 응답에 포함되어 발송된다. |
201 | Created |
클라이언트의 요청이 성공적이었으며, 자원을 서버내에 만들었다. PUT 메소드에 대한 전형적인 응답이다. |
202 | Accepted | 클라이언트가 요청을 받아들이기만 했을 뿐 아직 완료되지 않은 상태이다. |
203 | Non-Authoritative Infomation | 요청이 성공했지만 서버가 리턴한 정보의 일부가 자원과 관계 있는 원래 서버가 아닌 제3자로부터 왔다. |
204 | No Content | 응답할때 주어지는 헤더이나 응답된 실제 내용이 없다. |
205 | Reset Content | 새로운 문서가 없더라도 브라우저에서 창을 초기화하고, 문서를 새로 표시한다도록 클라이언트에게 응답한다. |
206 | Partial Content | 서버가 부부적인 GET 요청을 성공적으로 수행했음을 응답한다. |
300 | Multiple Choices | 요청된 문서가 여러 곳에 있을 때 어떤 문서를 원하는지를 클라이언트가 선택할 수 있도록 한다. |
301 | Moved Permanently | 요청한 자원이 새로운 URI로 영구히 이동했다. |
302 | Found | 요청한 자원이 일시적으로 다른 URI를 사용하고 있다. |
303 | See Other | 요청에 대한 응답을 서버가 지정한 다른 URL을 통해 가져올 수 있다. |
304 | Not Modified | 웹 브라우저의 캐시에 들어있는 문서가 최신 문서이니 그것을 그대로 사용하라는것을 나타낸다. |
305 | Use Proxy | 요청된 자원은 프록시를 통해서만 사용해야 한다. |
306 | (unused) | 사용하지 않음. |
307 | Temporary Redirect | 요청한 URI가 일시적으로 옮겨졌다. |
400 | Bad Request | 클라이언트의 요청에 오류가 있을 경우 사용하는 일반적인 응답이다. |
401 | Unauthorized | 클라이언트가 자원에 접근하는 권한을 얻지 못했다. 인증을 통과하지 못했을 경우 사용하는 응답이다. |
402 | Payment Required | 구현 안됨. |
403 | Forbidden | 서버가 요청을 거부하였다. 인증과 관련 없는 일반적인 '거부'로써 특정 클라이언트의 접근 제한을 걸면 클라이언트의 모든 요청은 403 응답을 얻게 된다. 일반적으로 기본 문서가 없을 경우 볼 수 있는 응답이다. |
404 | Not Found | 서버의 자원을 찾을 수 없다. |
405 | Method Not Allowed | 클라이언트가 사용한 메소드가 이 URI에 대해 지원되지 않는다. |
406 | Not Acceptable | 클라이언트가 지정한 URI는 존재하지만 클라이언트가 원하는 형식이 아님을 의미한다. |
407 | Proxy Authentication Required | 401과 유사하지만 클라이언트는 프록시의 인증이 선행된다. |
408 | Request Timeout | 클라이언트의 모든 요청이 서버에 의해 지정한 시간 동안 처리되지 않았음을 의미한다. |
409 | Conflict | 다른 요청이나 서버의 구성과 충돌이 발생하였다. |
410 | Gone | 요청된 문서가 사라지고, 새로운 주소는 알 수 없음을 나타낸다. |
411 | Length Required | 요청에 Content-Length 헤더를 추가해야 함을 클라이언트에게 통지한다. |
412 | Precondition Failed | 하나 또는 그 이상의 Request-Header에 명시된 조건에 의해 요청을 평가하여 조건을 만족하지 못했음을 표시한다. |
413 | Request Entiy Too Large | 클라이언트의 요청이 너무 커서 서버가 요청을 거부했다. |
414 | Request-URI Too Long | 클라이언트가 요청한 URI의 길이가 처리할 수 있는 길이보다 길어서 요청 수행을 거부하였다. |
415 | Unsupported Media Type | 서버가 지원하지 않는 미디어 형태를 사용하는 실체를 포함하고 있어서 요청을 처리할 수 없다. |
416 | Requested Range Not Satisfiable | 클라이언트가 잘못된 수치의 범위를 지정하고 있는 Range 헤더를 포함한다. |
417 | Expectation Failed | 요청이 서버가 만족시킬 수 없는 Expect 헤더를 가지고 있다. |
500 | Internal Server Error | 서버의 문제로 정상적인 수행을 할 수 없음을 표시한다. |
501 | Not Implemented | 해당 요청을 수행하는 방법을 서버가 모른다. |
502 | Bad Gateway | 게이트웨이나 프록시 역할을 수행하는 서버가 클라이언트를 대신해 접속한 다른 서버에서 잘못된 응답을 받았다. |
503 | Service Unavailable | 내부적인 원인으로 잠시 요청의 처리를 수행할 수 없다. |
504 | Gateway Timeout | 게이트웨이나 프록시 역할을 수행하는 서버가 클라이언트를 대신해 접속한 다른 서버에서 특정 시간동안 응답을 보내지 않았다. |
505 | HTTP Version Not Supported | 요청에 사용한 HTTP 버전을 서버가 이해하지 못했다. |
이 글은 스프링노트에서 작성되었습니다.