HTTP 상태 코드 소개(2xx, 3xx)

2023. 1. 27. 16:16·CS 공부

HTTP 상태 코드

 

상태 코드

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

 

1xx(Informational) : 요청이 수신되어 처리 중(거의 사용 되지 않음)

2xx(Successful) : 요청 정상 처리

3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요

4xx(Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음

5xx(Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함


2xx - 성공

클라이언트의 요청을 성공적으로 처리

200 Ok

201 Created

202 Accepted

204 No Content

 

202 Accepted

요청이 접수되었으나 처리가 완료되지 않았음

  • 배치 처리 같은 곳에서 사용
  • ex) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함

204 No Content

서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음

  • ex) 웹 문서 편집기에서 save 버튼
  • save 버튼의 결과로 아무 내용이 없어도 된다
  • save 버튼을 눌러도 같은 화면을 유지해야 한다.
  • 결과 내용이 없어도 204 메시지 만으로 성공을 인식할 수 있다

3xx - 리다이렉션

요청을 완료하기 위해 유저 에이전트(클라이언트 프로그램 주로 웹브라우저)의 추가 조치 필요

 

리다이렉션 이해

웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동(리다이렉트)

 

리다이렉션의 종류

1. 영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동

 

2. 일시 리다이렉션 - 일시적인 변경

ex) 주문 완료 후 주문 내역 화면으로 이동

 

3. 특수 리다이렉션

결과 대신 캐시를 사용

 

영구 리다이렉션

301, 308

리소스의 URI가 영구적으로 이동

원래의 URL을 사용 X, 검색 엔진 등에서도 변경 인지

 

301 Moved Permanently

리다이렉트시 요청 메소드가 get으로 변하고, 본문이 제거될 수도 있음

 

308 Permanent Redirect

301과 기능은 같음

리다이렉트시 요청 메소드와 본문 유지

 

일시적인 리다이렉션

302, 307, 303

리소스의 URI가 일시적으로 변경

따라서 검색 엔진 등에서 URL 을 변경하면 안됨

302,307,303 기능이 똑같다

 

하지만

 

302 Found

리다이렉트시 요청 메소드가 GET 으로 변하고, 본문이 제거될 수 있음

 

307 Temporary Redirect

302와 기능은 같음

리다이렉트시 요청 메소드와 본문 유지(요청메소드를 변경하면 안된다)

 

303 See Other

302와 기능은 같음

리다이렉트시 요청 메소드가 GET 으로 변경

 

307,303을 권장하지만 현실적으로 많은 애플리케이션 라이브러리들이 302를 기본값으로 사용

자동 리다이렉션시에 GET으로 변해도 되면 그냥 302를 사용해도 큰 문제 없음

 

304 Not Modified

캐시를 목적으로 사용

클라이언트에게 리소스가 수정되지 않았음을 알려준다. 따라서 클라이언트는 로컬 PC에 저장된 캐시를 재사용한다

304 응답은 응답에 메시지 바디를 포함하면 안된다(로컬 캐시를 사용해야 하므로)

조건부 GET, HEAD 요청 시 사용

'CS 공부' 카테고리의 다른 글

RESTful API란?  (0) 2023.01.30
CI / CD란?  (1) 2023.01.30
HTTP 상태 코드(4xx, 5xx)  (0) 2023.01.27
URI 와 웹 브라우저 요청 흐름  (0) 2023.01.26
<인터넷 네트워크> IP, TCP, UDP, DNS 정리  (0) 2023.01.12
'CS 공부' 카테고리의 다른 글
  • CI / CD란?
  • HTTP 상태 코드(4xx, 5xx)
  • URI 와 웹 브라우저 요청 흐름
  • <인터넷 네트워크> IP, TCP, UDP, DNS 정리
코딩숙
코딩숙
개발이라는 끝이 없는 바다 묵묵히 꾸준히 항해하기
  • 코딩숙
    코딩숙
    코딩숙
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • CS 공부 (17)
        • 클라우드 (3)
        • 네트워크 (3)
      • 개발 공부 (40)
        • 오류 해결 (4)
        • 알고리즘 (12)
        • Spring (3)
        • JPA (2)
        • TIL(오늘 내가 배운 것) (9)
        • 코드복습 (1)
        • 디자인 패턴 (1)
      • IT 관련 영상 메모 (1)
      • 데일리피드백 (0)
      • Tools (1)
      • Wishy (이력서 평가 프로젝트) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    appsmith
    데이터베이스 백업
    java
    http
    개발자
    개발공부
    백준
    setter method
    프로그래머스
    JPA
    변수
    데이터베이스 손상
    키 페어 분실
    인프런
    도메인설계
    programmers #정수 내림차순으로 배치하기
    HTTP BODY
    데이터 타입
    getter method
    innodb
    자바
    프로그래머스 네트워크 자바
    마이크로서비스
    isAfter()
    user mode
    키 페어 변경
    302 Found
    isBefore()
    게임 맵 최단거리 자바
    404 Not Found
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
코딩숙
HTTP 상태 코드 소개(2xx, 3xx)
상단으로

티스토리툴바