상태코드란 클라이언트와 서버 간의 통신상태를 나타내는 표준화된 코드 모음
: 조건부 응답
- 100 Continue
- 현재까지의 진행상태에 문제 없음
- 클라이언트가 계속 요청하거나 이미 요청을 완료한 경우에는 무시해도 되는것을 알려줌
- 101 Switching Protocol
- 클라이언트에 의해 보낸 업그레이트 요청 헤더에 대한 응답으로 서버에서 프로토콜을 변경할 것임을 알려줌
- 웹소켓 프로토콜 전환 시 사용
- 102 Processing
- 서버가 요청 수신하였고 처리하고 있지만 아직 제대로된 응답 알려줄 수 없음
- 103 Early Hints
- 주로 Link 헤더와 함께 사용되며 서버가 응답을 준비하는 동안 사용자 에이전트가 사전로딩을 시작할수 있게함
2XX = Success
: 클라이언트 요청 성공
- 200 OK
- 요청이 정상적으로 처리됨
- 201 Created
- 일반적으로 POST 또는 PUT 요청에 따라오며 해당 요청이 성공적이었고 그 결과 새로운 리소스가 생성됨
- 202 Accepted
- 서버가 요청을 접수했지만 아직 처리하지 않음
- 203 Non-authoritative Information
- 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공
- 이러한 조건에서는 200 OK 응답이 반드시 우선 됨
- 204 No Content
- 제공할 컨텐츠 없음
3XX = Redirection
: 클라이언트의 요청에 대해 적절한 위치나 대안 제공
- 301 Moved Permanently
- 요청한 리소스 URI가 변경됨
- 때로는 새로운 URI가 주어질 수 있음
- 304 Not Modified
- 이 전 요청과 비교했을 때 달라진게 없음
- 캐시 목적으로 사용
4XX = Client Error
: 클라이언트 요청 오류
- 400 Bad Request
- 서버가 요청을 이해할 수 없음
- 401 Unauthorized
- 권한 없음
ex) 로그인을 실패한 경우 또는 로그인 하지 않은 사용자가 회원기능을 사용하려 할 때 사용
- 403 Forbidden
- 클라이언트가 컨텐츠에 접근할 권한 없음
- 401과의 다른점은 403은 클라이언트가 누구인지 알고 있음
- 404 Not Found
- 요청한 URI를 찾을 수 없음
- 브라우저에서는 알려지지 않은 URL을 의미
- 인증받지 않은 클라이언트로부터 리소스를 숨기기 위해403 대신에 전송할 수도
- 405 Method Not Allowed
- 클라이언트가 보낸 메소드가 해당 URI에서 지원하지 않음
ex) 조회만 제공하는 컬렉션에 POST, PUT 또는 DELETE를 전송해 컬렉션을 변경하려고 하는 경우
- 408 Request Timeout
- 요청에 응답하는 시간이 오래 걸려 요청을 끊음
- 보내지 않고 끊을 때도 있음
5XX = Server Error
: 서버 오류
- 500 Internal Server Error
- 내부 서버에 오류가 발생하여 요청을 수행할 수 없음
- 501 Not Implemented
- 서버에 요청을 수행할 만한 기능이 구현 안됨
- 서버가 요청 메소드를 인식하지 못할 때 이 코드 사용
- 502 Bad Gateway
- 서버가 게이트웨이가 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받음
- 503 Service Unavailable
- 서버가 오버로드 되었거나 유지관리를 위해 중단되었기 때문에 현재 서버 사용 불가
- 대부분 일시적
- 504 Gateway Timeout
- 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못함
Reference
https://developer.mozilla.org/ko/docs/Web/HTTP/Status