- 1xx : 처리중 (거의 사용 안함)
- 2xx : 정상처리
- 3xx : 추가 행동 필요
- 4xx : 클라이언트 오류
- 5xx : 서버 오류
인식할 수 없는 상태코드는 상위상태코드 (ex 299=>2xx)로 해석
2xx 성공👍#
200OK201CREATED : (리소스 생성)202Accepted : (요청이 접수되었으나, 처리가 완료되지 않음 ) (ex 배치처리)204No Content : (서버에서 요청을 수행했지만, 응답 본문에 보낼 데이터는 없음)
3xx (Redirection) ▶️▶️#
리다이렉션이란?#
웹 브라우저는 3xx 응답에 Location 헤더가 있으면, 자동으로 Location 위치로 이동
종류
- 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동
- 일시 리다이렉션 : 일시적으로 변경 (PRG)
- 특수 리다이렉션 : 결과 대신 캐시사용
영구 리다이렉션(301,308)#
리소스의 URI가 영구적으로 이동 원래 URL을 사용 ❌ (검색 엔진 등에서도 변경 인지)
301Moved Permanently : 리다이렉트시 메소드가GET으로 변하고, 본문이 제거될 수도??308Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지
일시적 리다이렉션 (302,307,303)#
리소스의 URI가 일시적으로 변경 ( 검색 엔진등에서 URL 변경 안함)
302Found : 리다이렉트시 요청 메서드가 GET으로 변경되거나 본문이 제거될 수도??307*Temporary Redirect * : 리다이렉트시, 요청 메서드와 본문 유지303See 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헤더 필드로 복구시간을 보낼 수도