본문 바로가기
TTL/9주차 ~ 12주차 TIL (10.24 ~ 11.18)

2022-10-23 TIL (HTTP Status Code, HTTP 상태 코드)

by dev_junseok 2022. 10. 24.

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 - 서버가 일시 과부하

 

이런 코드들은 웹 개발자라면 기본적으로 숙지하고 있어야 한다고 생각한다. 익숙해지도록 해야겠다.