JongTachi의 개발 블로그

[Web] HTTP 상태코드 - 3xx(redirection) 본문

Server/Web

[Web] HTTP 상태코드 - 3xx(redirection)

JongTachi 2024. 10. 14. 21:48
728x90
반응형

1. 3xx대의 의미

3xx (Redirection) : 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요

 

2. 3xx대 종류

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 307 Temporary Redirect
  • 308 Permanent Redirect

 

여기서 잠깐!!

Redirection이란 무엇인지 같이 알아보고 상태코드에 대해 마저 설명드리겠습니다. :)

 

3. 리다이렉션이란?

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

그림 설명) 

1. 클라이언트가 URL에 /kpopStarBts라고 검색 

2. 서버에서 /kpopStarBts 라는 url은 /worldStarBts 라고 바꼈어라고 클라이언트에게 보내줌 

3. 자동 리다이렉트 되고 브라우저에서 재요청

4. 클라이언트가 URL에 /worldStarBts  라고 요청

5. 요청 성공 

 

4. 리다이렉션의 종류 

1) 영구 리다이렉션

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

  - 원래의 URL를 사용X, 검색 엔즌 등에서도 변경인지

  • 301 Moved Permanently : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거 될 수 있다.
    ※ 중요: Post로 와도 Get으로 리다이렉트 시키는 경우가 대부분인데 그 이유는 새로운 URL로 바뀌었다는 뜻은 데이터를 주고받는 형식이 많이 바뀌었을테니 Get으로 리다이렉트를 시키는 경우가 대부분이다.
  • 308 Permanent Redirect : 301과 기능은 같지만 리다이렉트시 요청 메서드와 본문을 유지함
    (처음에 POST로 보낸다면 리데이렉트도 POST유지)

 

2) 일시적인 리다이렉션(자주 사용)

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

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

  • 302 Found: 리다이렉트 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 307 Temporary Redirect : 302와 기능은 같으나, 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다.)
  • 303 See Other: 302와 기능은 같으나, 리다이렉트 요청 메서드가 GET으로 변경

 

5. 기타 리다이렉션(300, 304)

  • 300 Multiple Choices: 안 씀
  • 304 Not Modified
    - 캐시를 목적으로 사용
    - 클라이언트에게 리소스가 수정되지 않았음을 알려줌. 따라서 클라이언트는 로컬 PC에 저장된 캐시로 리다이렉트한다.
    - 304 응답은 응답에 메시지 바디를 포함하면 안된다.(로컬 캐시를 사용해야한다)
    - 조건부 GET, HEAD 요청시 사용

 

728x90
반응형