[TIL] 250817_Network: HTTP 상태 코드(3)

지코·2025년 8월 18일
0

Today I Learned

목록 보기
88/94
post-thumbnail

✴️ HTTP 상태 코드

⚡️ 4XX(Client Error)

4XX 에러는 클라이언트의 요청 시 잘못된 문법을 사용하는 등으로 서버가 해당 요청을 수행할 수 없을 때 발생한다. 그래서 오류의 원인이 클라이언트에 있다.

이미 클라이언트에서 요청을 보낼 때부터 잘못된 상태이기 때문에, 몇 번이고 재시도를 하더라도 똑같이 실패로 이어진다. 이것이 5XX 에러와의 가장 큰 차이점💥이다.

⭐️ 400 Bad Request

클라이언트 오류의 대표적인 상태 코드이다. 클라이언트의 요청에 사용된 잘못된 문법 등으로 인해 서버가 요청을 수행할 수 없다는 뜻이다. 예를 들어 요청 파라미터가 잘못 되었거나, API 스펙이 맞지 않는 등의 경우가 있다. 따라서 클라이언트는 요청 내용을 재검토해서 다시 요청해야 한다.

⭐️ 401 Unauthorized

클라이언트가 해당 리소스에 대한 인증이 필요하다는 뜻이다. 401 오류 발생 시, 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명해야 한다.

참고로 인증(Authentication)인가(Authorization) 에는 차이점이 있다. 인증은 본인이 누구인지 확인하는 것이고, 인가는 특정 리소스에 접근할 수 있는 권한이 있다는 것이다.
상태 코드 메세지가 'Unauthorized' 이지만 인증되지 않았다는 뜻으로 알면 된다.

⭐️ 403 Forbidden

서버가 요청을 이해하긴 했지만 승인을 거부한 상태이다. 주로 인증 자격 증명은 있지만, 접근 권한이 불충분할 때 이 상태 코드를 사용한다.

예를 들어 ADMIN 등급이 아닌 사용자가 로그인은 했지만, ADMIN 등급의 리소스에 접근하는 경우 이 상태 코드를 사용한다.

⭐️ 404 Not Found

요청 리소스를 찾을 수 없다는 뜻이다. 클라이언트가 요청하는 리소스가 서버에 없기 때문에 클라이언트 에러로 분류한다.

또는 클라이언트가 접근할 권한이 부족한 리소스에 접근하려고 하는데 해당 리소스를 숨기고 싶을 때도 이 상태 코드를 사용한다.

⚡️ 5XX(Server Error)

5XX 에러는 클라이언트의 바른 요청에도 불구하고, 서버가 가진 문제로 인해 발생한다. 오류의 원인이 서버에 있기 때문에 재시도 시 성공할 가능성이 있다.

⭐️ 500 Internal Server Error

웬만한 서버 문제로 발생한 오류에 관해서는 이 상태 코드를 사용한다.

⭐️ 503 Service Unavailable

서비스 이용 불가라는 뜻으로, 서버가 일시적인 과부하 또는 예정된 작업으로 인해 일정 기간 동안 요청을 처리할 수 없음을 나타낸다.
이때는 Retry-After 헤더 필드로 얼마 뒤에 복구되는지 데이터를 보내줄 수 있다.

Reference

🎥 모든 개발자를 위한 HTTP 웹 기본 지식

profile
꾸준함이 무기

0개의 댓글