(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

클라이언트의 요청이 성공적이었으며, 서버는 요청한 데이터를 포함하여 응답한다.
응답시 리턴되는 정보는 메소드에 따라 다르다.
GET 요구한 자원에 상응하는 엔터티는 응답에 포함되어 발송된다.

HEAD 요구한 자원에 상응하는 Entity-Header 필드는 Message-Body 없이 응답에 포함되어 발송된다.
POST 처리 결과를 설명 또는 포함하는 엔터티.
TRACE 수신 서버가 수신한 요구 메시지를 포함하고 있는 엔터티.

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 버전을 서버가 이해하지 못했다.

 

 

 

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts