CS 공부

[Network] HTTP status code

콘요맘떼 2022. 4. 16. 16:06

  최근에 유튜브 클론코딩 프로젝트를 리팩토링하면서 HTTP status code에 대해서 한 번 살펴볼 필요성을 느꼈다. HTTP status code는 통신의 결과를 요약해주며 API 문서를 작성할 때 꼭 명시해줘야 하는 중요한 개념이기 때문에 목적에 맞는 HTTP status code를 활용할 수 있는 것이 필요하다.

 

HTTP status code의 종류

- 10X : 통신에 대한 정보를 제공해준다. (ex. 이상 없음, 프로토콜 변경, 처리중 등)

- 20X : 통신 성공

- 30X : 리다이렉트 (클라이언트 측에서는 request를 끝내기 위해 추가적인 동작을 수행해야 한다.)

- 40X : 클라이언트 오류

- 50X : 서버 오류

 

 

대표적인 HTTP Status Code의 종류

종류 상태 코드 이름 의미
20X
(통신 성공)
200 OK 요청 성공 (일반적으로 GET)
  201 Create 리소스 생성 성공 (POST, PUT)
  204 No Contents 요청은 성공했지만 내용이 없음
30X
(리다이렉트)
300 Multiple Choice 요청 URI에 여러 리소스 존재 (요청에 대한 여러 응답이 가능하기 때문에 그 중 하나를 선택해야 함)
  301 Moved Permanently 요청 리소스의 URI가 변경됨 (응답에서 변경된 URI를 제공하기도 함)
  303 See Other 요청 리소스가 다른 URI에 위치하고 있기 때문에 클라이언트 측에 해당 리소스가 다른 URI에 위치하고 현재 URI는 그에 대한 리다이렉트 기능을 수행하고 있음을 알려줌
40X
(클라이언트 오류)
400 Bad Request API에서 정의하지 않은 요청이 들어옴
  401 Unauthorized 해당 작업을 위해 클라이언트가 스스로를 인증해야 하나 인증 정보가 없음
  403 Forbidden 클라이언트가 해당 작업에 권한이 없음 (인증은 되어 있다는 점에서 401과 다름)
  404 Not Found 서버에 존재하지 않는 페이지, 리소스를 찾으려고 할
  405 Method Not Allowed 요청의 메소드가 허용되지 않은 메소드일 때 (예를 들어서 리소스 삭제를 금지하기 위해 DELETE 메소드 제한), 참고로 GET, HEAD 메소드는 기본이기 때문에 제한할 수 없다.
  406 Not Acceptable 요청한 페이지가 요청한 컨테츠 특성으로 응답할 수 없음
  407 Proxy Authentication Required 프록시 서버를 통한 인증이 필요할 때
  408 Request Timeout 가장 최근 요청으로부터 시간이 오래 경과된 연결에 전송하여 서버가 연결을 끊고 싶어함을 알려준다. (일부 서버는 해당 메시지를 보내지 않고 바로 연결을 끊기도 한다.)
  410 Gone 해당 컨텐츠가 서버에서 영구적으로 삭제되었으며 리다이렉트할 URI 역시 존재하지 않기 때문에 캐시, 링크 등 그에 대한 정보를 삭제하라는 의미
  429 Too Many Requests 클라이언트가 지정된 시간 내에 지나치게 많은 request를 보낸 경우
50X
(서버 오류)
500 Internal Server Error 서버 내부 오류 발생
  502 Bad Gateway 게이트웨이 오류 발생
  503 Service Unavailable 서버가 해당 요청을 처리할 준비가 되지 않음 (ex. 유지보수를 위한 시스템 셧다운, 시스템 과부하 등)

 

  일단 요 정도 기억해두면 충분하지 않을까 싶다. 추후에 다른 프로젝트들을 진행하면서 실제로 사용하는 상태 코드들이 더 존재한다면 추가하도록 하겠다.

'CS 공부' 카테고리의 다른 글

[Network] 프록시 서버 (Proxy Server)  (0) 2022.04.16
[Network] HTTP (HyperText Transfer Protocol)  (0) 2022.04.16
[CS] 프로세스와 스레드  (0) 2022.04.16
[CS] 스레드 안전 (Thread-safe)  (0) 2022.02.27
[Infra] Scale up & Scale out  (0) 2022.02.23