Network

[HTTP] HTTP 상태 코드 - 4xx(Client Error), 5xx(Server Error)

HEY__ 2022. 7. 21. 01:28
728x90

이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!

 

⛅️ 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 헤더 필드를 통해 클라이언트에게 얼마 뒤에 서버가 복구되는지 보낼 수 있음.

   (정기 점검인 경우)

 

 

 

 

728x90