이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!
⛅️ 4xx Client Error
✅ 4xx 상태 코드가 발생하는 경우
● 클라이언트가 오류의 원인일 때 ex) 요청 시 잘못된 문법을 사용
● 클라이언트가 오류의 원인이기 때문에 똑같이 재시도를 하면 계속 실패한다.
(잘못된 요청/데이터를 계속 보내는 것이기 때문!)
✅ 401 Bad Request
● 클라이언트의 요청 오류로 인해 서버가 요청을 처리할 수 없음
● 클라이언트는 요청 내용을 재검토하고 수정하여 다시 요청해야 한다.
● 요청 parameter가 잘못된 경우 or API 스펙이 맞지 않는 경우... etc
✅ 401 Unauthorized
● 클라이언트가 해당 리소스에 대한 인증(Authentication)되지 않은 경우
● 401 오류 발생 시, 응답에 WWW-Authenticate 헤더와 함께 인증 방법 설명 필요
● 인증(Authentication) vs 인가(Authorization)
인증(Authentication) : 사용자가 누구인지 확인 ex)로그인
인가(Authorization) : 특정 리소스에 접근할 수 있는 권한을 부여 → 인증이 있어야 인가가 있다.
✅ 403 Forbidden
● 서버가 정상적인 요청을 받았지만 승인을 거부하는 경우
● 주로 인증 자격은 있지만, 접근 권한이 부족한 경우
ex) 사용자 등급으로 로그인하여, 어드민 등급의 리소스에 접근하는 경우
✅ 404 Not Found
● 요청한 리소스가 서버에 없는 경우에 발생
● 클라이언트가 권한이 부족한 리소스에 접근 했을 때, 해당 리소스를 숨기고 싶은 경우에 발생
⛅️ 5xx Server Error
✅ 5xx 상태 코드가 발생하는 경우
● 서버의 문제로 인해 오류가 발생할 때
● 서버에 문제가 있기 때문에, 클라이언트가 요청을 재시도하면 성공할 수도 있음. (서버가 복구되면 성공)
✅ 500 Internal Server Error
● 서버 내부의 문제로 인해 오류 발생
● 애매한 경우 500 오류
✅ 503 Service Unavailable
● 서버가 일시적인 과부하 or 예정된 작업으로 잠시 요청을 처리할 수 없는 경우
● Retry-After 헤더 필드를 통해 클라이언트에게 얼마 뒤에 서버가 복구되는지 보낼 수 있음.
(정기 점검인 경우)