공부하기/Network

[Network] HTTP 응답 상태 코드

다섯자두 2025. 3. 20. 10:06

🌀 HTTP 응답 코드에 대해 설명해 주세요.

  • 클라이언트가 보낸 HTTP 요청이 성공적으로 완료되었는지 알려주는 코드이다.
  • 3자리 숫자로 이루어져 있으며, 100번대 ~ 500번대 까지 존재한다.
  • 코드의 첫 번째 자리에 따라 5개의 그룹으로 나뉜다.
코드 의미
1xx 정보 제공 응답, 요청 처리 중
2xx 성공, 요청 정상 처리
3xx 리디렉션, 요청 완료를 위해 추가 작업 필요
4xx 클라이언트 오류, 요청이 잘못됨
5xx 서버 오류, 서버측에서 오류 발생

 

💬 200(ok)와 201(created)의 차이에 대해 설명해 주세요.

  • 200(ok) : 요청이 정상 처리 되었을 때 범용적으로 사용
  • 201(created) : 요청이 정상 처리 되었으며, 그 결과 서버에서 새로운 리소스를 생성했을 때 사용
    • 일반적으로 POST 요청 성공 시 주로 사용된다.

💬 401 (Unauthorized) 와 403 (Forbidden)은 의미적으로 어떤 차이가 있나요?

  • 401(Unauthorized) : 인증 실패, 클라이언트가 인증되지 않았거나 인증 정보가 잘못되었다는 것을 의미한다.
  • 403(Forbidden) : 접근 거부, 인증은 되었으나 해당 리소스에 대한 권한이 없어 차단되었다는 것을 의미한다.

💬 필요하다면 직접 응답코드를 정의해서 사용할 수 있을까요?

  • 표준 코드를 사용하는 것이 권장되지만, 사용은 가능하다. (해봤는데 된다.)
    • 예를 들어, Http status에 ``800``을 넣어서 응답하는 것 가능
    • 표준이 아니므로 다른 시스템과 연동할 때 예상치 못 한 오류가 발생할 수 있다.
  • 대안 1 : 기존 표준 코드를 활용하되 응답 메시지로 구분하기 ( "status" : 800 )
  • 대안 2 : HTTP 헤더를 활용하여 커스텀 상태 전달하기 

🔗 Reference