HTTP Status Code 란?
현재 HTTP 프로토콜의 통신 상태를 나타내주는 코드번호인데 인터넷을 써본 거의 모든 사람이라면 404 error를 본 적이 있을것이다.

이런 코드가 404 뿐만이 아니라, 1xx 번대부터 5xx 번대까지 아주 많이 있는데, 그 중에서 중요한 몇 가지만 살펴보도록 하겠다.
1xx
- 요청이 수신되어 처리중. 거의 사용되지 않음
2xx
- 요청 정상 처리
- 200 - OK
- 201 created - Header에 Location을 추가해서 새로운 리소스의 URI를 알려줄 수 있다.
- 202 Accepted - 요청은 접수했다.
- 204 No Content - sava 버튼을 눌러서 저장만 하고 화면 변화가 필요없을때 사용
보통 200이랑 201만 쓴다고 한다.
3xx
- 추가 행동 필요
- 웹 브라우저는 3xx의 헤더에 Location 이 있으면 자동으로 리다이렉트 한다.
- 영구 리다이렉트 : 영구 이동. 메소드와 바디가 바뀌는 301과 안바뀌는 308이 있다.
- 일시 리다이렉트 : 일시적 변경. 주문 완료 후 주문내역으로 이동
- 302 - 리다이렉트시 메소드는 GET으로. 본문은 제거
- 307 - 리다이렉트시 메소드와 본문 유지
- PRG(Post/Redirect/Get) - Post 주문후 새로고침시 중복주문이 가능하다. 주문 완료 시 302를 줘서 리다이렉트 시키면 새로고침 해도 결과화면만 다시 요청.
4xx
- 클라이언트 에러
- 잘못된 문법, 오류의 원인이 클라이언트에 있다.
- 400 - 요청 내용을 다시 검토해야 한다. API 스펙이 맞는지를 확실히 해야함.
- 401 - 인증이 안됨
- 인증 vs 권한 : 인증은 로그인이 안됐다. 권한은 내가 운영자가 아니다. Authentication vs Authorization
- 오류는 Unauthorized로 그냥 쓰고 있다.
- 403 - 권한이 없다.
- 404 - 리소스가 없다. 또는 숨겨져 있다.
5xx
- 서버 에러
- 복구 후 재시도시 성공 가능.
- 500 - 서버 내부 문제
- 503 - 서버가 일시 과부하
이런 코드들은 웹 개발자라면 기본적으로 숙지하고 있어야 한다고 생각한다. 익숙해지도록 해야겠다.
'TTL > 9주차 ~ 12주차 TIL (10.24 ~ 11.18)' 카테고리의 다른 글
| 2022-10-31 TIL (SerializerMethodField) (0) | 2022.10.31 |
|---|---|
| 2022-10-28 TIL (django ImageField) (0) | 2022.10.30 |
| 2022-10-27 TIL (0) | 2022.10.28 |
| 2022-10-26 TIL (로그인 인증의 종류, JWT 알아보기) (0) | 2022.10.27 |
| 2022-10-25 TIL (장고 시리얼라이저란 serializer) (0) | 2022.10.25 |