Computer Science

[Network] HTTP response status code

개발자 이우진 2024. 4. 6. 17:02

HTTP(Hypertext Transfer Protocol)는 웹 서버와 클라이언트 간의 통신을 위한 프로토콜이다. 서버가 클라이언트의 요청에 응답하는 과정에서 발생하는 여러 상황을 나타내기 위해 HTTP 상태 코드가 사용된다. 상태 코드는 RFC 9110[각주:1]에 정의되어 있다.

1xx: 정보

1xx 시리즈의 상태 코드는 요청이 수신되었으며 처리가 진행 중임을 나타낸다. 주로 클라이언트에 추가 정보를 제공하거나 요청을 계속 진행할 것인지 여부를 알려준다.

  • 100 (Continue): 클라이언트가 요청을 계속할 수 있음을 나타낸다.
  • 101 (Switching Protocols): 서버가 업그레이드 요청을 수락하고 프로토콜을 변경할 것임을 나타낸다.

2xx: 성공

2xx 시리즈의 상태 코드는 클라이언트의 요청이 성공적으로 처리되었음을 나타낸다.

  • 200 (OK): 요청이 성공적으로 처리되었음을 나타낸다.
  • 201 (Created): 요청이 성공적으로 처리되었고 새로운 리소스가 생성되었음을 나타낸다.
  • 204 (No Content): 요청이 성공적으로 처리되었지만 응답 본문에 컨텐츠가 없음을 나타낸다.

3xx: 리다이렉션

3xx 시리즈의 상태 코드는 요청을 완료하기 위해 추가 조치가 필요함을 나타낸다.

  • 301 (Moved Permanently): 요청한 리소스가 새 위치로 영구적으로 이동되었음을 나타낸다.
  • 302 (Found): 요청한 리소스가 일시적으로 새 위치로 이동되었음을 나타낸다.

4xx: 클라이언트 오류

4xx 시리즈의 상태 코드는 클라이언트 측의 오류로 인해 요청을 처리할 수 없음을 나타낸다.

  • 400 (Bad Request): 클라이언트의 요청이 잘못되었음을 나타낸다.[각주:2]
  • 401 (Unauthorized): 요청한 리소스에 대한 인증이 필요함을 나타낸다.[각주:3] 클라이언트가 인증되지 않은 상태에서 보호된 리소스에 접근하려고 할 때 주로 발생한다.
  • 403 (Forbidden): 서버가 요청을 거부했음을 나타낸다.[ 클라이언트가 요청을 수행할 권한이 없는 경우에 사용된다.[각주:4]
  • 404 (Not Found): 요청한 리소스를 찾을 수 없음을 나타낸다. 서버가 요청한 URI에 해당하는 리소스를 찾을 수 없는 경우에 발생한다.[각주:5]

5xx: 서버 오류

5xx 시리즈의 상태 코드는 서버 측의 오류로 인해 요청을 처리할 수 없음을 나타낸다.

  • 500 (Internal Server Error): 서버가 요청을 처리하는 동안 예기치 않은 오류가 발생했음을 나타낸다.
  • 503 (Service Unavailable): 서버가 현재 요청을 처리할 수 없음을 나타낸다.

출처

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

  1. RFC: Request for Comments. 비평을 기다리는 문서라는 의미로 인터넷 기술에 적용 가능한 연구, 혁신, 기법 등을 아우르는 메모를 나타낸다. 일부 RFC는 표준으로 받아들여진다 [본문으로]
  2. ex) 유효하지 않은 파라미터 [본문으로]
  3. ex) 로그인이 필요한 페이지 [본문으로]
  4. ex) 로그인은 성공했으나 관리자만 접근 가능한 리소스일 때 [본문으로]
  5. 존재하지 않는 URI를 입력했을 때 [본문으로]