✏️ Redirection

Ji Yun·2023년 3월 25일
0

스프링

목록 보기
3/3

원래는 http 상태 코드에 대한 내용이지만 난 내가 헷갈리는 것만 정리하기 때문에 리다이렉션만 정리를 하겟다.


http-status

http-status, 즉 상태 코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다.


3xx ➡️ Redirection

Redirection

  • Redirection이란 요청을 완료하기 위해 user agent의 추가 조치가 필요하다는 것이다
  • 웹 브라우저(클라이언트)는 응답 결과에 Location header가 있으면 Location의 위치로 자동 이동한다 ➡️ 요청을 두 번 하는게 아니라 그렇게 동작만 함

리다이렉션 종류

  1. 영구 리다이렉션 : 리소스의 URI가 영구적으로 이동한 경우
    301 Moved permanently ➡️ 요청 메소드가 GET으로 변함 따라서 본문이 제거될 수도 있음 위험!
    308 Permanent redirect ➡️ 메소드와 본문 유지 301의 해결

  2. 일시 리다이렉션 : 리소스 URI의 일시적 변경
    302 Found ➡️ 리다이렉션시 요청 메소드가 GET으로 변함 + 본문 제거
    307 Temporary Redirect ➡️ 요청 메소드와 본문 유지
    303 See Other ➡️ 리다이렉트시 요청 메소드 GET으로 변경


PRG

Post Redirection Get 의 약자
예를 들어 POST 메소드로 상품 주문 후에 웹 브라우저를 새로고침 하면 다시 POST 요청이 서버로 가서 중복 주문이 될 수 있다. 이를 해결하기 위한 것이 PRG이다.

  • POST 요청 후에 주문 결과 화면을 GET 메소드로 리다이렉션 한다
  • 즉 URL이 POST에서 GET으로 리다이렉트 된 것이다
  • 결과 화면은 GET이므로 몇 번을 새로고침 해도 결과 화면 조회만 되고 주문이 누적되지 않는다
profile
Así es la vida, sí

0개의 댓글