본문 바로가기

CS

[HTTP | HTTP 웹 기본지식 | HTTP 상태코드] 2,3,4,5xx 상태코드

HTTP 상태 코드는 서버가 클라이언트의 요청을 처리한 결과를 나타내는 숫자 코드이며, 이를 통해 클라이언트는 요청의 성공 여부와 그 원인을 파악할 수 있다. 상태 코드는 다섯 가지 범주로 분류됩니다.

  1. 1xx (정보 응답)
    • 이 범주의 상태 코드는 요청을 받았으며 프로세스가 계속 진행 중임을 나타낸다.
    • 예: 100 Continue - 클라이언트는 요청을 계속해야 함을 나타낸다.
  2. 2xx (성공)
    • 이 범주의 상태 코드는 클라이언트의 요청이 성공적으로 수신, 이해, 수락되었음을 나타낸다.
    • 예: 200 OK - 요청이 성공적으로 처리되었음을 나타낸다.
    • 예: 201 Created - 요청이 성공하였고 그 결과로 새 리소스가 생성되었음을 나타낸다.
  3. 3xx (리다이렉션)
    • 이 범주의 상태 코드는 요청을 완료하기 위해 추가 조치가 필요함을 나타낸다.
    • 예: 301 Moved Permanently - 요청된 리소스가 영구적으로 새 위치로 이동되었음을 나타낸다.
    • 예: 302 Found - 요청된 리소스가 일시적으로 다른 URI에 위치해 있음을 나타낸다.
  4. 4xx (클라이언트 오류)
    • 이 범주의 상태 코드는 클라이언트의 요청에 오류가 있어 요청을 처리할 수 없음을 나타낸다.
    • 예: 400 Bad Request - 서버가 요청을 이해하지 못했음을 나타낸다.
    • 예: 401 Unauthorized - 요청이 인증을 필요로 함을 나타낸다.
    • 예: 404 Not Found - 요청한 리소스를 찾을 수 없음을 나타낸다.
  5. 5xx (서버 오류)
    • 이 범주의 상태 코드는 서버가 유효한 요청을 처리할 수 없음을 나타낸다.
    • 예: 500 Internal Server Error - 서버에 오류가 발생하여 요청을 처리할 수 없음을 나타낸다.
    • 예: 503 Service Unavailable - 서버가 일시적으로 요청을 처리할 수 없음, 보통 유지보수 또는 오버로드 때문에 발생한다.

이 상태 코드들은 웹 개발에서 클라이언트와 서버 간의 커뮤니케이션을 명확하게 하는 데 매우 중요하며, 오류 처리 및 사용자 경험을 개선하는 데 기여한다.

4xx (클라이언트 오류)

4xx 상태 코드는 요청에 문제가 있어 서버가 요청을 수행할 수 없음을 나타낸다. 이는 주로 클라이언트의 잘못된 요청으로 인한 것으로, 클라이언트가 오류를 수정해야 한다는 것을 의미한다.

 

클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 없음

오류의 원인이 클라이언트에 있음

중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가

패함

    • 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 없음
      • 서버가 요청을 이해하지 못했을 때 반환되는 코드로, 요청 형식이 잘못되었거나 요청에 불충분한 정보가 포함되어 있을 때 사용된다.
      • 요청 구문, 메시지 등등 오류
      • ) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을
      • 클라이언트는 요청 내용을 다시 검토하고, 보내야함
    • 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함
      요청이 인증을 필요로 할 때 사용되며, 클라이언트가 자격증명을 제공하지 않았거나 제공한 자격증명이 유효하지 않을 때 반환된다.
    • 403 Forbidden 서버가 요청을 이해했지만 승인을 거부함
      서버가 요청을 이해했지만 승인을 거부할 때 사용된다. 주로 권한이 없는 접근을 시도했을 때 반환된다.
    • 404 Not Found 요청 리소스를 찾을 없음
      요청한 리소스를 서버에서 찾을 수 없을 때 사용된다. 주소 오류나 링크 손상 등이 원인일 수 있다.
      요청 리소스가 서버에 없음
      또는 클라이언트가 권한이 부족한 리소스에 접근할 해당 리소스를 숨기고 싶을
  • 429 Too Many Requests
    • 클라이언트가 허용된 시간 동안 너무 많은 요청을 보냈을 때 사용된다. 주로 요청 제한을 초과했을 때 반환된다.

5xx (서버 오류)

5xx 상태 코드는 서버 측에서 문제가 발생하여 요청을 수행할 수 없음을 나타낸다. 이 경우 서버 내부의 문제를 해결해야 요청을 정상적으로 처리할 수 있다.

  • 500 Internal Server Error
    • 서버 내부 오류로 요청을 수행할 수 없을 때 반환된다. 원인은 서버 구성 오류, 서버 코드의 버그 등 다양할 수 있다.
  • 502 Bad Gateway
    • 서버가 게이트웨이나 프록시 역할을 하면서, 상위 서버로부터 유효하지 않은 응답을 받았을 때 사용된다.
  • 503 Service Unavailable
    • 서버가 일시적으로 요청을 처리할 수 없을 때 사용된다. 보통 서버 유지보수 중이거나 과부하 때문에 발생한다.
  • 504 Gateway Timeout
    • 게이트웨이나 프록시 서버가 상위 서버로부터 시간 내에 응답을 받지 못했을 때 사용된다.
  • 507 Insufficient Storage
    • 서버가 요청을 처리하기에 충분한 저장 공간이 없을 때 사용된다.