카테고리 없음

Redirect와 Forward

미니시리 2023. 6. 5. 00:08

특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환됩니다. 리다이렉트와 포워드는 페이지가 전환된다는 점에서 비슷하지만, 페이지를 전환하는 주체가 다르다는 차이점이 있습니다.

 

Redirect란

Redirect는 Web Container로 명령이 들어오면, 웹 브라우저에게 다른 페이지로 이동하라고 명령을 내린다. 그러면 웹 브라우저는 URL을 지시된 주소로 바꾸고 해당 주소로 이동한다. 다른 웹 컨테이너에 있는 주소로 이동한다.
새로운 페이지에서는 Request와 Response 객체가 새롭게 생성된다.

 

Forword란

Forward는 Web Container 차원에서 페이지의 이동만 존재한다. 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없다. 그렇기 때문에 웹 브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없다.
현재 실행중인 페이지와 forward에 의해 호출될 페이지는 Request 객체와 Response 객체를 공유한다.

 

사용법

//Spring MVC 패턴
return "redirect:/";
return "forward:/";

//Servlet
response.sendRedirect("/"); //redirect
request.getRequestDispatcher("/").forward(request, response); //forward