본문 바로가기

Infrastructure/Network

[HTTP] 상태 코드 (5xx)

**5xx (Server Error) 상태 코드에 대해서 알아본다.

서버 문제로 오류가 발생 하였을 때 사용되는 상태 코드.
오류의 원인이 서버이기 때문에 4xx 상태 코드와는 다르게 재시도시 성공 할 수도 있다.

500 (Internal Server Error)

  • 서버 내부 문제로 오류가 발생했을 때
  • 서버 내부의 오류를 정의하기 애매하면 500 상태 코드를 사용한다.
  • 필자가 이 글을 쓰기전까지 실수하였던 부분이 있다.
    • 예를들어 GET /car/100 을 조회 하였고 결과는 null이었다고 가정해보자.
      id = 100인 차량을 조회하였을 때 결과가 없는 것은 클라이언트 입장에서는 정상적인 결과이다.
      쉽게 말해서 조회한 리소스가 없다는 결과를 얻었기 때문에 에러가 아니다.
      하지만 null 인 결과를 수정하려다 NullPointerException이 발생한다면 Internal Server Error가 맞다.
      어떻게 보면 당연한 말일 수 있지만...필자는 처음에 상당히 혼란스러웠던 부분이다.

503 (Service Unavailable)

  • 서비스 이용 불가
  • 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리 할 수 없음.
  • Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있다.

'Infrastructure > Network' 카테고리의 다른 글

[HTTP] 헤더 - 1 (일반 헤더)  (0) 2021.06.25
[HTTP] 상태 코드 (3xx)  (0) 2021.06.25
[HTTP] 상태 코드 (4xx)  (0) 2021.06.24
[HTTP] 상태 코드 (2xx)  (0) 2021.06.24
[HTTP] 상태 코드 (종류)  (0) 2021.06.24