HTTP 상태 코드

이희주·2022년 7월 1일
0

HTTP 상태 코드란?

HTTP 상태 코드는 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다.

HTTP 상태 코드 분류
상태 코드의 첫 번째 숫자에 따라 크게 5가지로 분류 된다.

1xx : Informational
2xx : Success
3xx : Redirection
4xx : Client Error
5xx : Server Error
HTTP 상태 코드 상세

1xx : 조건부 응답

Request received, continuing process
요청을 받았으며 작업을 계속함 을 의미

100 Continue 클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미합니다. 만약 클라이언트의 작업이 완료되었다면 이 응답은 무시해도 된다
2xx : 성공
The action was successfully received, understood, and accepted
요청을 성공적으로 받았으며, 인식했고, 수용함 을 의미함

200 : OK

요청이 성공적으로 수행되었음을 의미

201 Created 요청이 성공적으로 수행되었으며, 그 결과로 새로운 리소스가 생성됨을 의미. 주로 POST 요청에 대한 응답
202 Accepted 요청은 접수되었지만, 처리는 완료되지 않음을 의미. 배치 처리와 같이 요청 접수 후 일정 시간이 지난 후 요청을 처리하는 경우의 응답
203 Non-Authoritative Information 요청이 성공적으로 수행되었으나, 요청에 대한 검증이 되지 않음을 의미
204 No Content 요청이 성공적으로 수행되었고, 응답 payload에 보낼 데이터가 없음을 의미 주로 삭제 요청에 대한 응답으로 사용
205 Reset Content 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 클라이언트가 콘텐츠를 재설정할 것을 요구
206 Partial Conent 서버가 GET 요청의 일부만 성공적으로 처리했음을 의미

3xx : 리다이렉션 완료

Further action must be taken in order to complete the request
요청 완료를 위해 추가 작업 조치가 필요함 을 의미

300 Multiple Choices 요청에 대해 하나 이상의 리소스가 존재함을 의미
301 Moved Permanently 요청한 리소스의 URI가 변경되었음을 의미
302 Found 요청한 리소스의 URI가 일시적으로 변경되었음을 의미
303 See Other 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때의 응답
304 Not Modified 수정되지 않음을 의미 해당 응답을 받으면, 클라이언트는 서버로부터 리소스를 재전송 받지 않고, 캐싱된 리소스를 사용
307 Temporary Redirect 302와 유사하며, User-Agent가 반드시 HTTP 메소드를 변경하지 말아야 한다는 점만 다르다
308 Permanent Redirect 301과 유사하며, User-Agent가 반드시 HTTP 메소드를 변경하지 말아야 한다는 점만 다르다
301, 302 vs. 308, 307
307은 302와 유사하고, 308은 301과 유사하다. 차이점은 307, 308은 전송 받은 HTTP Method를 유지한다는 것

4xx : 요청 오류

The request contains bad syntax or cannot be fulfilled
요청의 문법이 잘못되었거나 요청을 처리할 수 없음 을 의미

400 Bad Request 잘못된 문법 등으로 인해 클라이언트가 올바르지 못한 요청을 보내 서버가 요청을 이해할 수 없음을 의미
401 Unauthorized 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답 입니다. 보통 로그인이 필요한 API를 비로그인 사용자가 호출했을 때 사용
403 Forbidden 클라이언트가 콘텐츠에 접근할 권한을 가지고 있지 않음을 의미합니다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있다는 것
404 Not Found 요청한 리소스가 존재하지 않음을 의미
405 Method Not Allowed 현재 리소스에 맞지 않는 메소드를 사용했음을 의미
406 No Acceptable 알맞은 컨텐츠 타입이 없음을 의미
408 Request Timeout 요청에 응답하는 시간이 너무 오래 걸림을 의미
409 Conflict 요청이 현재 서버의 상태와 충돌될 때의 응답
412 Precondition Failed 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않을 때의 응답
413 Payload Too Large 요청이 너무 커서 서버가 처리할 수 없을 때의 응답
429 Too many Requests 클라이언트가 지정된 시간에 너무 많은 요청을 보낸 경우의 응답

5xx : 서버 오류

The server failed to fulfill an apparently valid request
서버가 명백히 유효한 요청에 대해 충족을 실패했음 을 의미

500 Internal Server Error 서버에 오류가 발생하여 응답할 수 없음을 의미
501 Not Implemented 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미
502 Bad Gateway 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미다
503 Service Unavailable 서버가 요청을 처리할 준비가 되지 않음을 의미
504 Gateway Timeout 서버가 게이트웨이 역할을 하고 있으며, 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미

profile
어제보다 오늘 발전하는 프론트엔드 개발자

0개의 댓글