[네트워크] HTTP 상태코드에 대해 알아보자

김우경·2021년 6월 3일
1

1xx : 처리중

거의 사용하지 않는다고 알고 있습니다

2xx : 요청의 정상 처리

  • 200 OK 성공
  • 201 리소스의 생성시 사용 → 헤더 필드에 리소스의 주소가 들어있다.
  • 202 accessed 접수는 됐는데 아직 처리는 안된 경우 → 배치 처리에서 사용한다.
  • 204 no content → 정상 요청이지만 payload 본문에 데이터가 필요없는 경우

3xx : 리다이렉션

요청 완료를 위해 추가 행동이 필요한 경우이다

리다이렉션?

Location header의 위치로 다시 이동하는 것

영구 리다이렉션

: 특정 리소스의 URI가 영구적으로 이동한 경우

  • 301 Moved permanantly → 리다이렉트시 요청이 GET 본문은 제거 (May)
  • 308 Permanent Redirect 위에꺼랑 기능은 같은데 요청과 본문은 유지

일시 리다이렉션

  • 302 Found → 리다이렉트시 요청은 GET, 본문은 제거 (May)
  • 307 Temporary Redirect 위에꺼랑 기능은 같은데 요청과 본문은 유지
  • 303 See Other 리다이렉트시 요청 메소드가 무조건 GET으로

→ 는 언제 사용할까? PRG에서!

PRG란 POST→ REDIRECT→ GET의 약자이다.

Post로 주문 후에 웹 브라우저를 그대로 새로고침하면 중복 주문의 오류가 발생이 가능하다. POST로 주문 후 GET으로 리다이렉트 하도록 200ok가 아닌 302나 303으로 리다이렉트 하도록 한다.

특수 리다이렉션

: 결과 대신 캐시를 사용하는 방법

4xx : 클라이언트의 오류

: 오류의 원인이 클라이언트에게 있는 경우이다. 뭔가 잘못된 문법이 있거나, 요청한 파라미터가 잘못된 경우가 그 예이다. 여러번 재시도해도 똑같이 실패한다.

  • 400 Bad Request 잘못된 요청시 e.g. 요청 parameter가 잘못될때
  • 401 unauthorized → 인증이 되지 않은 경우
  • 403 forbidden → 서버가 요청은 정상적으로 이해했는데 승인이 거부된 경우
  • 404 not found → 요청한 리소스가 없는 경우

5xx : 서버의 오류

→ 서버가 정상 처리되지 않은 경우 → 이때는 재시도시 성공할 수도 있음

  • 500 Internal Server Error 애매하면 대부분 이 에러
  • 503 서비스 이용 불가 → 서비스가 과부하 또는 점검으로 일시적으로 다운된 경우
profile
Hongik CE

0개의 댓글