HTTP 상태 코드

MoMoon·2022년 2월 24일
0

HTTP

목록 보기
5/7

상태 코드

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능

1) 1xx (Informational)

- 요청이 수신되어 처리 중

2) 2xx (Successful)

- 요청 정상 처리

종류

  • 200 : OK -> 요청 성공
  • 201 : Created -> 요청 성공, 새로운 리소스 생성
  • 202 : Accepted -> 요청이 접수는 되었지만 처리가 완료되지않음 ex) 배치 처리
  • 204 : No Content -> 서버가 요청을 성공적으로 수행, 응답 페이로드 본문에 보낼 데이터가 없음

3) 3xx (Redirection)

- 요청을 완료하려면 추가 행동이 필요
- 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (Redirect)
- 307, 303을 권장, 하지만 302를 기본값으로 많이 사용되고 있음
- 자동 리다이렉션 시 GET으로 변해도 되면 302 써도 상관없음

종류

  • 300 Multiple Choices -> 안씀
  • 301 Moved Permanently -> 영구, 리다이렉트 시 요청 메서드가 GET으로 변경, 본문이 제거될 수도 있음
  • 302 Found -> 일시적, 리다이렉트 시 요청 메서드가 GET으롷 변경, 본문 제거될 수도 있음
  • 303 See Other -> 일시적, 302와 동일, 요청 메서드가 GET으로 변경
  • 304 Not Modified
    • 캐시를 목적으로 사용
    • 클라이언트에게 리소스가 수정되지 않음을 알림, 저장된 캐시를 재사용 즉 캐시로 리다이렉트
    • 응답에 메시지 바디 포함 X
  • 307 Temporary Redirect -> 일시적, 302와 동일 다만 요청 메서드 본문 유지
  • 308 Permanent Redirect -> 영구, 리다이렉트시 요청 메서드와 본문 유지

리다이렉션

  • 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동
    • /members -> /users
  • 일시 리다이렉션 : 일시적인 변경
    • 주문 완료 후 주문 내역 화면으로 이동
    • PRG : POST -> Redirect -> GET
      ex) POST 주문 후 웹 브라우저를 새로고침하면 중복 주문이 될 수도 있음 -> GET으로 리다이렉트
  • 특수 리다이렉션 : 결관 대신 캐시를 사용

4) 4xx (Client Error)

- 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 400 : Bad Request -> 요청 구문, 메시지 등등 오류 (클라이언트는 요청 내용을 다시 검토하고 보내야됨)
  • 401 : Unauthorized -> 인증 필요
  • 403 : Forbidden -> 서버에서 승인을 거부, 접근 권한이 불충분
  • 404 : Not Found -> 요청 리소스가 서버에 없음

5) 5xx (Server Error)

- 서버 오류, 서버가 정상 요청을 처리하지 못함
  • 500 : Internal Server Error -> 서버 내부 문제로 오류 발생
  • 503 : Service Unavailable -> 서버가 일시적인 과부화 또는 예정된 작업으로 잠시 요청을 처리할 수 없음

만약 모르는 상태 코드가 나타나면?

클라이언트는 상위 상태코드로 해석해서 처리



참고 자료

0개의 댓글