Search

HTTP의 상태코드의 종류와 의미

개요

HTTP 에는 다양한 상태코드가 있습니다. 상태코드별로 어떠한 의미를 가지고 있는지 확인 해보도록 하겠습니다.

http 상태코드

1xx (Informational): 요청이 수신되어 처리중
2xx (Successful): 요청 정상 처리
3xx (Redirection): 요청을 완료하려면 추가 행동이 필요
4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함

1xx (Informational)

 요청이 수신되어 처리중
거의 사용되지 않음

2xx (Successful)

 클라이언트의 요청을 성공적으로 처리
200 OK
요청 성공
주로 리소스를 조회 하는 GET 요청의 응답코드로 사용
201 Created
요청 성공하여 새로운 리소스가 생성됨
주로 리소스를 생성 하는 POST 요청의 응답코드로 사용
202 Accepted
요청이 접수되었으나 처리가 완료되지 않음
배치 처리 같은 곳에서 사용
204 No Content
서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
응답 결과가 필요없는 곳에서 사용

3xx (Redirection)

 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요
300 Multiple Choices
거의 사용되지 않음
301 Moved Permanently
리소스의 URI가 영구적으로 이동
원래의 URL를 사용하지 않으며, 검색 엔진에서도 변경을 인지
리다이렉트시 요청 메서드가 GET으로 변경되고, 본문이 제거될 수 있음
302 Found
리소스의 URI가 일시적으로 이동
리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
303 See Other
302 Found와 기능이 같음
리다이렉트시 요청메서드가 GET으로 반드시 변경됨
304 Not Modified
캐시를 목적으로 사용
클라이언트에게 리소스가 수정되지 않았음을 알려줌
응답에 메시지 바디를 포함하면 안됨
주로 GET, HEAD 요청시에 사용
307 Temporary Redirect
302 Found와 기능이 같음
리다이렉트시 요청 메서드와 본문을 유지
308 Permanent Redirect
301 Moved Permanently와 기능이 같음
리다이렉트시 요청 메서드와 본문을 유지
일시적인 리다이렉트인 302, 307, 303 중에 무엇을 써야 할까?

4xx (Client Error)

 클라이언트 오류
400 Bad Request
클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
401 Unauthorized
인증(Authentication) 되지 않았거나 인가(Authorization)가 필요함
403 Forbidden
서버가 요청을 이해 했지만 승인을 거부함
인증 자격 증명은 있지만 접근 권한이 불충분한 경우
404 Not Found
요청 리소스가 서버에 없음
클라이언트가 권한이 부족한 리소스에 접근할때 사용하기도 함

5xx (Server Error)

 서버 오류
500 Internal Server Error
서버 내부 문제로 오류 발생
503 Service Unavailable
서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
Retry_after 헤더 필드로 얼마뒤에 복구되는지 보낼 수 있음

참고