ETC

HTTP 상태 코드

hjkang

상태 코드란?

  • 클라이언트와 서버 간의 통신 상태를 나타내는 일련의 표준화된 코드 모음이다.
  • 클라이언트는 요청에 대한 성공, 실패에 대한 피드백을 상태 코드를 통해 알 수 있다.
  • 상태 코드는 세 자리의 숫자로 만들어져 있고, 각 첫 번째 자리의 수로 그룹을 구분할 수 있다.

 

상태 코드 설명
1xx(정보) 요청을 받았으며 프로세스를 계속 진행합니다.
2xx(성공) 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
3xx(리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요합니다.
4xx(클라이언트 오류) 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
5xx(서버 오류) 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.

 

 

 

1XX

  • 서버가 요청을 받았으며, 서버에 연결된 클라이언트는 작업을 계속하라는 의미

 

상태 코드 간단 설명 설명
100 Continue 진행 중임을 의미하는 응답코드
요청의 초기 부분이 수신되었으며 서버에서 아직 거부되지 않았음을 클라이언트에 알리는 데 사용
클라이언트는 요청의 나머지 부분을 계속 전송하거나 요청이 이미 완료된 경우 이 응답을 무시하면 됩니다.
101 Switching
Protocols
클라이언트에 의해 보낸 업그레이드 요청 헤더에 대한 응답코드
서버에서 프로토콜을 변경할 것 을 알려줌

 

 

 

2XX

  • 클라이언트의 요청이 성공적으로 수신 되었음을 나타내는 의미

 

상태 코드 간단 설명 설명
200 OK 요청이 성공되었음을 의미하는 응답코드
201 Created 요청이 성공되었으며, 그 결과로 새로운 리소스가 생성되었음을 나타내는 응답코드
202 Accepted 요청은 수신했지만, 그에 응하여 행동할 수 없음을 나타내는 응답코드
다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해서 만들어진 코드
203 Non-Authoritative Information 요청이 성공적으로 수행되었으나, 요청에 대한 검증이 되지 않았음을 나타내는 응답코드
204 No Content 서버가 요청을 완료했지만, 엔티티 본문을 반환할 필요가 없는 경우, 주로 삭제 시 사용
205 Reset Content 서버가 요청을 완료했으며, 클라이언트가 요청을 보낸 문서 보기를 재설정해야하는 경우
206 Partial Content 서버가 GET 요청에 대해서 부분적으로 수행했을 떄

 

 

 

3XX

  • 요청 완료를 위해 추가 작업 조치가 필요함을 나타냄

 

상태 코드 간단 설명 설명
300 Multiple
Choices
요청에 대해서 하나 이상의 응답이 가능한 경우, 클라이언트는 그 중 하나를 선택해야 한다.
301 Moved
Permanently
요청한 리소스의 URI 가 변경되었을 때, 클라이언트는 HTTP 헤더에 들어 있는 Location 필드를 찾아서, 해당 필드가 존재하는 경우 자동으로 리다이렉트 되도록 해야함.
302 Found 요청한 URI 이 일시적으로 변경되었음을 나타내는 코드, 새롭게 변경된 URI 는 나중에 만들어질 수도 있기 때문에 향후 요청도 반드시 동일한 URI 로 해야함.
303 See Other 클라이언트가 요청한 리소스를 다른 URI 에서 GET 요청을 통해 얻어야 할 때 사용하는 상태코드
304 Not Modified 클라이언트가 조건부 GET 요청을 수행하고, 접근은 허용되지만 문서가 수정되지 않은 경우 사용하는 응답 코드
클라이언트에게 응답이 수정되지 않았음을 알려줌으로써 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있음.
305 Use Proxy 이전 버전의 HTTP 기술 사양에서 정의되었으며, 요청한 응답은 반드시 프록시를 통해서 접속해야 하는 것을 알려주는 응답 코드
307 Temporary 
Redirerct
클라이언트가 요청한 리소스가 다른 URI 에 있음을 알려주는 응답코드, 클라이언트가 반드시 HTTP 메소드를 변경하지 말아야 한다.
302 Found와 다른 점은 클라이언트가 반드시 사용된 HTTP 메소드를 변경하지 말아야한다는 점만 다르다.
307 Temporary Redirect 의 경우 첫 요청에 POST 가 사용되었다면, 두번째 요청도 반드시 POST 를 사용해야 한다,

 

 

 

4XX

  • 클라이언트에서 서버로 요청을 보낼때 문법이 잘못되었거나 서버가 이해할 수 없을 때를 나타냄

 

상태 코드 간단 설명 설명
400 Bad Request 클라이언트가 올바르지 못한 요청을 보낸 경우 발생하는 응답 코드
401 Unauthorized 인증되지 않은 사용자가 인증을 필요한 요청을 하려고 하는 경우 발생하는 오류 코드
EX) 로그인이 필요한 API 를 비로그인 사용자가 호출했을 때
403 Forbidden 클라이언트가 콘텐츠에 접근할 권한을 가지고 있지 않을 때 발생하는 응답 코드
서버가 클라이언트가 누구인지 알고 있음
404 Not Found 요청한 리소스가 없는 경우 발생하는 오류 코드
서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 전송할 수도 있음
405 Method Not Allowed 요청과 맞지 않는 메소드를 사용한 경우 발생하는 응답 코드
406 No Acceptable 알맞은 컨텐츠 타입이 없을 때 발생하는 오류 코드
서버의 리소스가 클라이언트의 HTTP 헤더에 들어있는 Accept 필드에 명시된 콘텐츠 타입이 아닌 경우의 응답
407 Proxy Authentication Required 이것은 401과 비슷하지만 프록시에 의해 완료된 인증이 필요합니다
408 Request Timeout 요청에 응답하는 시간이 너무 오래 걸릴 경우 발생하는 응답 코드
409 Conflict 요청이 현재 서버의 상태와 충돌될 때의 응답 코드
413 Request Entity
Too Large
요청 엔티티는 서버에서 정의한 한계보다 클 경우 발생하는 오류 코드
서버는 연결을 끊거나 혹은 Retry-After 헤더 필드로 돌려보냄
414 Request-URI
Too Long
클라이언트가 요청한 URI는 서버에서 처리하지 않기로 한 길이보다 길 경우 발생하는 응답 코드
415 Unsupported Media Type 요청을 보낼때 함께 보낸 미디어 포맷이 서버에서 지원하지 않는 경우 발생하는 응답 코드
429 Too Many Requests 사용자가 지정된 시간에 너무 많은 요청을 보낸 경우 발생하는 응답 코드

 

 

 

5XX

  • 서버가 명백히 유효한 요청에 대한 충족을 실패했을 때를 나타냄

 

상태 코드 간단 설명 설명
500 Internal Server Error 서버에 오류가 발생하여 응답할 수 없음을 의미
서버에 오류가 발생했으나 처리 방법을 알 수 없을 경우의 응답
501 Not Implemented 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미하는 응답 코드
502 Bad Gateway 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미하는 응답 코드
503 Service Unavailable 서버가 요청을 처리할 준비가 되지 않음을 의미하는 응답 코드
일반적으로 유지보수를 위해 작동이 중단되거나 과부하가 걸린 경우의 응답
504 Gateway Timeout 서버가 게이트웨이 역할을 하고 있으며, 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미하는 응답코드
505 HTTP Version
Not Supported
서버에서 지원되지 않는 HTTP 버전을 클라이언트가 요청한 경우 발생하는 응땁코드

 

 

 

 

 


참고

- https://velog.io/@soyeon207/HTTP-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C-%EC%A0%95%EB%A6%AC

'ETC' 카테고리의 다른 글

[오류] NODE_ENV' is not recognized as an internal or external command  (0) 2024.03.15
SEO(검색 엔진 최적화)란?  (2) 2023.11.08
OAuth란?  (0) 2023.10.01
VSCode - rest client  (0) 2023.08.31
모노레포(Monorepo)  (0) 2023.07.12