[HTTP] HTTP 상태코드

지수·2023년 4월 2일
0
post-thumbnail

해당 포스트는 인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 기반으로 작성되었습니다. 👍

1. HTTP 상태코드란?

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

  • 1xx(Informational) : 요청이 수신되어 처리중
  • 2xx(Successful) : 요청 정상 처리
  • 3xx(Redirection) : 요청을 완료하려면 추가 행동 필요
  • 4xx(Client Error) : 클라이언트 오류
  • 5xx(Server Error) : 서버 오류



2. 2xx - 성공

  • 200 OK : 리소스 조회 등 요청 성공
  • 201 Created : 요청해서 새로운 리소스 생성
  • 202 Accepted : 요청이 접수되었으나 처리되지 않음
    (ex: 배치 처리)
  • 204 No Content : 요청이 성공적으로 수행되었지만, 응답 페이로드 본문에 보낼 데이터가 없음
    (ex: save 버튼 클릭 결과로 아무 내용이 없어도 됨)



3. 3xx - 리다이렉션

리다이렉션(Redirection)이란?
웹 브라우저는 3xx 응답의 결과에 Location header가 있으면, 해당 Location 위치로 자동 이동 = 자동 리다이렉트

- 영구 리다이렉션 : 특정 리소스 URI가 영구적으로 이동, 이제 전 URI는 사용하지 않음
- 일시 리다이렉션 : 일시적으로 URI 이동, 이동 전 URI와 이동 후 URI를 모두 사용함 (ex: 주문 완료 후 주문 내역 화면으로 이동)
- 특수 리다이렉션 : 결과를 다시 받지 않고, 캐시 사용

  • 300 Multiple Choices
  • 301 Moved Permanently (영구) : 요청 메서드가 GET으로 변할 수 있고, 본문이 제거될 수 있음
  • 302 Found (일시) : 요청 메서드가 GET으로 변할 수 있고, 본문이 제거될 수 있음
  • 303 See Other (일시) : 요청 메서드 및 본문 유지
  • 304 Not Modified : 클라이언트에게 리소스가 수정되지 않았음을 전달, 캐시 재사용!(=캐시로 리다이렉트)
  • 307 Temporary Redirect (일시) : 요청 메서드가 확실히 GET으로 변함
  • 308 Permanent Redirect (영구) : 요청 메서드 및 본문 유지

PRG : Post / Redirect / Get

  • POST 요청 후 새로고침하면 → 중복 요청 처리 (POST는 멱등하지 않음!!!)
  • POST 요청 후 자동 리다이렉트로 GET 요청 페이지로 가도록 설계하면
    새로고침해도 GET 요청만 중복됨(GET은 멱등하기 때문에 ㄱㅊ)



4. 4xx - 클라이언트 오류

  • 오류의 원인이 클라이언트에 있음
  • 요청 자체가 잘못되었기 때문에 재시도로 복구 불가능
  • 400 Bad Request : 클라이언트의 잘못된 요청
  • 401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증 필요
  • 403 Forbidden : 클라이언트가 인증 자격은 있지만, 접근 권한(인가)이 불충분
  • 404 Not Found : 요청 리소스가 서버에 없음

인증과 인가

  • 인증(Authentication) : 본인이 누군지인지 확인(로그인)
  • 인가(Authorization) : 권한부여, 특정 리소스에 접근할 수 있는 권한(선 인증 후 인가)



5. 5xx - 서버 오류

  • 오류의 원인이 서버에 있음
  • 서버에 문제가 있기 떄문에 재시도하면 성공할 수도 있음(서버 과부화 등 문제일 경우)
  • 500 Internal Server Error : 서버 내부 문제, 애매하면 500
  • 503 Service Unavailable : 서비스 이용 불가, 일시적 서버 과부화 혹은 예정된 작업 처리 등으로 요청 처리 불가
profile
사부작 사부작

0개의 댓글