상태코드란?

요청한 정보에 대한 상태확인을 할 수 있습니다.
내가 보낸 리퀘스트를 서버에서 정상적으로 처리 했는지, 에러였는지 알 수 있습니다.

상태코드 클래스

클래스설명
1xxInformational리퀘스트를 받아들여 처리중
2xxSuccess리퀘스트를 정상적으로 처리했음
3xxRedirection리퀘스트를 완료하기 위해서 추가동작이 필요
4xxClient Error서버는 리퀘스트 이해 불가능
5xxServer Error서버는 리퀘스트 처리

1xx

1xx : 안내코드
100 : CONTINUE
101 : SWITCHING_PROTOCOLS , 규약을 전환
102 : PROCESSING

2xx 성공(Success)

2xx : SUCCESS에 관한 코드
200 : OK , 성공적으로 요구를 전달하였음.
201 : CREATED , 요구가 충족되어 새로운 자원을 생성하였음
202 : ACCEPTED , 요구가 접수되었으며 아직 처리가 완료되지는 않았음. (단순한 접수여부이며 처리의 성공여부는 아님)
203 : NON_AUTHORITATIVE Information , 인증되지 않은 정보 (서버에서 사용하도록 정의되지 않는 정보세트를 말함)
204 : NO_CONTENT , 클라언트 요구을 처리했으나 전송할 데이터가 없음
(기존내용의 변화없는 추가적인 정보입력을 실행할 경우에 해당함)
205 : RESET_CONTENT , 내용을 reset
206 : PARTIAL_CONTENT , 부분적으로 요구를 완료하였음.
207 : MULTI_STATUS

3xx 리다이렉트(Redirection)

3xx : REDIRECT에 관한 코드 (처리를 위해 추가적인 동작이 필요함)
300 : MULTIPLE_CHOICES , 복수 선택
301 : MOVED_PERMANENTLY , 요청한 자원이 영구한 URI가 할당되어 이동함.
302 : MOVED_TEMPORARILY , 요청한 자원이 별도의 임시 URI에 할당되어 이동함.
303 : SEE_OTHER , 다시 다른것을 참조함.
304 : NOT_MODIFIED , 별다른 변경이 없이 응답되었음
305 : USE_PROXY , 요청된 자원은 프락시를 통해야만 접근이 됨
306 : TEMPORARY_REDIRECT

4xx 클라이언트 에러(Client Error)

4xx : CLIENT_ERROR에 관한 코드 (요구 메시지가 처리할 수 없을 때)
400 : BAD_REQUEST , 클라이언트의 요청을 서버가 이해하지 못함.
401 : UNAUTHORIZED , 요청에 대한 응답이 사용자인증을 필요로 할 경우.
402 : PAYMENT_REQUIRED , 예약되어 있음
403 : FORBIDDEN , 금지됨 (요청은 이해하였으나 금지되어있는 요청임)
404 : NOT_FOUND , Request-URI를 찾을 수 없음
405 : METHOD_NOT_ALLOWED , URI에서 사용되지 않는 method를 요청함.
406 : NOT_ACCEPTABLE , 접수할수없음을 나타냄.
407 : PROXY_AUTHENTICATION_REQUIRED , 프락시에서 먼저 인증을 해야함.
408 : REQUEST_TIME_OUT , 요청한 시간내에 응답을 하지 못함.
409 : CONFLICT , 충돌 (어떠한 부분의 충돌로 응답하지 못함)
410 : GONE , 영구적으로 사용할 수 없는 경우에 해당하며 그렇지 않으면 401로 응답함.
411 : LENGTH_REQUIRED , 유효하지 못한 Content-Length로 요청을 하였음.
412 : PRECONDITION_FAILED , 전체조건 실패 ( 하나이상의 Request-Header에 기재된 내용이 실패됨)
413 : REQUEST_ENTITY_TOO_LARGE , 요구 entity가 너무커서 처리가 거부됨.
414 : REQUEST_URI_TOO_LARGE ,URI길이가 허용보다 커서 처리가 거부됨.
415 : UNSUPPORTED_MEDIA_TYPE , 지원되지 않는 포맷으로 거부됨.
416 : RANGE_NOT_SATISFIABLE
417 : EXPECTATION_FAILED
422 : UNPROCESSABLE_ENTITY
423 : LOCKED
424 : FAILED_DEPENDENCY

5xx 서버 에러(Server Error)

5xx : SERVER_ERROR에 관한 코드 (서버가 요청을 처리하는 과정에서 문제발생)
500 : INTERNAL_SERVER_ERROR , 내부서버 오류 (잘못된 스크립트 실행과 같은 예상하지 못한 오류일 경우)
501 : NOT_IMPLEMENTED , 구현되지 않았음 (요청을 처리하는데 필요한 기능이 구현되지 않았음)
502 : BAD_GATEWAY , 나쁜 게이트웨이 (게이트웨이 서버가 올바르지 않은 응답을 수신 할 경우)
503 : SERVICE_UNAVAILABLE , 과부하 또는 여러가지 이유로 현재 요청을 처리하지 못함.
(임시적이며 일정한 시간뒤에 정상적으로 서비스 가능)
504 : GATEWAY_TIME_OUT , 게이트웨이(또는 프락시)서버가 시간내에 요청의 처리를 완료하는 수신을 받지 못함.
505 : VERSION_NOT_SUPPORTED , 지원되지 않는 HTTP 버젼임.
506 : VARIANT_ALSO_VARIES
507 : INSUFFICIENT_STORAGE
510 : NOT_EXTENDED

마치며

웹 개발을 하다보면 많이 마주치게 되는 상태코드에 대하여 정리해보았습니다.
다음은 HTTP 메시지들에 관하여 알아보겠습니다.