Redirect와 Forward

SungminPark·2024년 1월 28일
0

자바 정리

목록 보기
9/10
post-thumbnail

리다이렉트 (Redirect)

  • 클라이언트가 요청한 리소스에 대한 응답으로, 서버가 다른 위치의 URL로 이동하라고 알리는 프로세스입니다.

  • 클라이언트는 리다이렉트 응답을 받으면, 새로운 URL로 자동으로 이동하거나 사용자에게 안내 후에 이동할 수 있습니다.

  • 주로 리다이렉트는 사용자가 요청한 페이지가 옮겨졌거나 새로운 위치에 있을 때, 그리고 특정 상황에서 페이지를 이동할 필요가 있을 때 사용됩니다.

  • 리다이렉트는 HTTP 헤더를 통해 구현되며, 주로 3xx 상태 코드를 사용합니다.

    예를 들어,

    • 301 Moved Permanently: 해당 리소스가 영구적으로 다른 위치로 이동되었음을 알림.
    • 302 Found: 일시적으로 다른 위치로 이동하라는 것을 알림.

포워드 (Forward)

  • 포워드는 서버 내부에서의 프로세스로, 클라이언트는 이를 인식하지 못합니다.
  • 서버는 클라이언트의 요청을 받아 처리한 후, 그 결과를 다른 리소스로 전달합니다. 이때 클라이언트는 처음 요청한 URL에 대한 응답을 받게 됩니다.
  • 주로 포워드는 서버 측에서 코드의 재사용이나 추가적인 처리를 위해 사용됩니다. 서버는 여러 개의 컴포넌트로 나뉘어져 있을 때, 한 컴포넌트에서 다른 컴포넌트로 요청을 전달하는 용도로 사용됩니다.
  • 포워드는 주로 서버 사이드에서 이루어지므로, 클라이언트는 이를 알아차리지 못합니다. 서버 내부에서의 로직을 효율적으로 처리하고 코드를 모듈화하는 데에 사용됩니다.

forward

  • web container 차원에서의 페이지 이동, 실제로 웹 브라우저는 다른 페이지로 이동했는지 알 수 없다.
  • 웹 브라우저에는 최초 호출한 URL만 표시되고 이동한 페이지의 URL 정보는 볼 수가 없다
  • 동일한 web container에 있는 페이지로만 이동이 가능하다
  • 현재 실행중인 페이지와 forward 에 의해 호출될 페이지는 request, response객체를 공유한다

forward방식은 다음 이동한 URL로 요청정보를 그대로 전달한다. 말 그대로 forward(건네주기)하는 것이다. 그렇기 때문에 사용자가 최초로 요청한 요청정보는 다음 URL에서도 유효하다

redirect

  • web container는 redirect명령이 들어오면 웹 브라우저에게 다른 페이졸 이동하라는 명령을 내린다
  • 웹 브라우저는 URL을 지시된 주소로 바꾸고 그 주소로 이동한다
  • 다른 web container에 있는 주소로 이동이 가능하다
  • 새로운 페이지 에서는 request, response객체가 새롭게 생성된다

redirect의 경우 최초 요청을 받은 URL1에서 클라잉너트에 redirect할 URL2를 리턴하고 클라이언트에게 전혀 새로운 요청을 생성하여 URL2에 다시 요청을 보낸다. 따라서 처음 보냈던 최초의 요청정본느 더이상 유요하지 않게 된다.

profile
개발자 준비 중 입니다

0개의 댓글