HTTP 상태코드 - 4xx 클라이언트 오류, 5xx 서버 오류

이경영·2022년 9월 28일
0

HTTP

목록 보기
7/14

4xx (Client Error)

  • 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 오류의 원인이 클라이언트에 있음
    - 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함.

400 Bad Request

: 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음

  • 요청 구문, 메시지 등등 오류
  • 클라이언트는 요청 내용을 다시 검토하고 보내야함
  • 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때

401 Unauthorized 인증이 안됨.

: 클라이언트가 해당 리소스에 대한 인증이 필요함

  • 인증이 되지 않음

  • 401오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명

  • 참고

    • 인증(Authentication) : 본인이 누구인지 확인(로그인)
    • 인가(Authorization) : 권한부여 (ADMIN 권한처럼 특정 리소스에 접근할 수 있는 권한, 인증이 있어야 인가가 이음)
    • 오류 메시지가 Unauthorized 지만 인증 되지 않음(이름이 아쉬움)

403 Forbidden

서버가 요청을 이해했지만 승인을 거부함

  • 주로 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
  • 예) 어드민 등급이 아닌 사용자가 로그인은 했지만, 어드민 등급의 리소스에 접근하는 경우

404 Not Found

요청 리소스를 찾을 수 없음

  • 요청 리소스가 서버에 없음
  • 또는 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을 때



5xx : Server Error

서버오류

  • 서버 문제로 오류 발생
  • 서버에 문제가 있기 때문에 재시도 하면 성공할 수도 있음(복구가 되거나 등등)

500 Internal Server Error

: 서버 문제로 오류 발생, 애매하면 500 오류

  • 서버 내부 문제로 오류 발생
  • 애매하면 500 오류

503 Service Unavailable

: 서비스 이용 불가

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



400은 클라이언트의 오류 (스펙, 인증 오류)
500은 서버내부의 문제가 많음

웬만하면 500대 에러를 만들면 안됨
=> 서버에 문제가 있을때만 만들어야함.

  • 예를 들어. 비지니스 로직 상 예외 케이스일때
    고객의 잔고가 부족할 시, 또는 나이가 미성년자인데 주문을 요청할 경우 500대 에러를 내면 안됨
profile
꾸준히

0개의 댓글