최대 1 분 소요

Redirect와 Forwarding은 JSP 환경에서 다른 페이지로 이동하는 페이지 전환 기능이다.

하지만 둘이 차이점을 정확히 설명할 수 없기에 정리하려고 한다.


포워딩(Forwarding)

  • 웹 컨테이너 차원에서 페이지 이동을 의미

  • 클라이언트에게 알리지않고 서버의 다른 자원에게 요청이 전달 됨

  • 따라서 Request와 Response 객체를 공유 함



리다이렉트(Redirect)

  • 클라이언트 요청을 처리한 후 sendRedirect() 라는 메서드가 호출되면 웹 컨테이너가 웹 브라우저에게 새로운 URL을 주며 이동하라고 함

  • 클라이언트는 다시 새로운 URL로 요청을 만들어 보냄

  • 따라서 첫 요청과 새로운 요청은 서로 다름(전 요청의 객체는 소멸하고 새로 만들어짐)



차이점 정리

  • 리다이렉트는 URL가 바뀌고 포워딩은 바뀌지 않음

  • 리다이렉트는 Request와 Response 객체가 서로 같고 포워딩은 서로 다름

  • 리다이렉트는 클라이언트가 다른페이지로 이동했는지 알 수 있고 포워딩은 서버에서 넘기는 것으로 알 수 없음

  • 성능은 포워딩이 리다이렉트 보다 좋음(리다이렉트 < 포워딩)

업데이트: