Skip to main content

HTTP 상태코드

·343 words·2 mins· loading
Table of Contents
  • 1xx : 처리중 (거의 사용 안함)
  • 2xx : 정상처리
  • 3xx : 추가 행동 필요
  • 4xx : 클라이언트 오류
  • 5xx : 서버 오류

인식할 수 없는 상태코드는 상위상태코드 (ex 299=>2xx)로 해석


2xx 성공👍
#

  • 200 OK
  • 201 CREATED : (리소스 생성)
  • 202 Accepted : (요청이 접수되었으나, 처리가 완료되지 않음 ) (ex 배치처리)
  • 204 No Content : (서버에서 요청을 수행했지만, 응답 본문에 보낼 데이터는 없음)

3xx (Redirection) ▶️▶️
#

리다이렉션이란?
#

웹 브라우저는 3xx 응답에 Location 헤더가 있으면, 자동으로 Location 위치로 이동

종류

  • 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동
  • 일시 리다이렉션 : 일시적으로 변경 (PRG)
  • 특수 리다이렉션 : 결과 대신 캐시사용

영구 리다이렉션(301,308)
#

리소스의 URI가 영구적으로 이동 원래 URL을 사용 ❌ (검색 엔진 등에서도 변경 인지)

  • 301 Moved Permanently : 리다이렉트시 메소드가 GET으로 변하고, 본문이 제거될 수도??
  • 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지

일시적 리다이렉션 (302,307,303)
#

리소스의 URI가 일시적으로 변경 ( 검색 엔진등에서 URL 변경 안함)

  • 302 Found : 리다이렉트시 요청 메서드가 GET으로 변경되거나 본문이 제거될 수도??
  • 307 *Temporary Redirect * : 리다이렉트시, 요청 메서드와 본문 유지
  • 303 See other : 302와 비슷, 무조건 GET 으로 변경

302가 모호해서 307, 303 등장

기타 리다이렉션 (300,304)
#

300은 안씀 304 Not Modified

  • 캐시를 목적으로 사용
  • 클라에게 리소스가 수정되지 않았음을 알려줌 (캐시로 리다이렉트)
  • 로컬 캐시를 사용해야 하므로, 메시지 바디 ❌

4XX (Client Error)
#

오류의 원인이 클라이언트에 있음 (서버가 요청 수행 못함) ** 클라이언트가 잘못된 요청을 보내기 때문에, 재시도는 항상 실패할거임**

400 Bad Request
#

클라이언트의 잘못된 요청으로, 서버가 처리 불가

  • 요청 구문, 메시지 등 의 오류 (클라가 다시 검토해서 보내야)
  • ex) 요청 파라미터 잘못됨, API 스펙 안맞음

401 * Unauthorized*
#

** 인증 필요 **

  • 응답에 WWW-Authenticate 헤더와 함께 방법을 설명

403 Forbidden
#

** 서버가 요청은 이해했지만, 승인 거부 **

  • 인증은 했지만, 권한없음
  • ex) 일반사용자가 admin 접근

404 Not Found
#

** 요청 리소스를 찾을 수 없음 **

또는 숨기고 싶을때


5xx (Server Error)
#

서버 내부 문제로 오류

애매하면 500 4xx와 달리, 재시도시 성공 가능

503 Service Unavailable
#

서비스 이용 불가

  • 서버가 일시적인 과부하 또는 예정 작업 등으로, 처리 불가
  • Retry-After 헤더 필드로 복구시간을 보낼 수도