본문 바로가기
Java 웹 프로그래밍

forward redirect

by irerin07 2019. 1. 10.
728x90


web container 차원에서의 페이지 이동, 실제로 브라우저는 다른 페이지로 이동했는지 없다.

브라우저에는 최초 호출한 URL 표시되고, 이동한 페이지의 URL정보는 볼수가 없다.

동일한 web container 있는 페이지로만 이동이 가능하다.

현재 실행중인 페이지와 forward 의해 호출될 페이지는 request, response 객체를 공유한다.

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

 



web container redirect 명령이 들어오면 브라우저에게 다른 페이지로 이동하라는 명령을 내린다.

브라우저는 URL 지시된 주소로 바꾸고 주소로 이동한다.

다른 web container 있는 주소로 이동이 가능하다.

새로운 페이지에서는 request, response객체가 새롭게 생성된다.

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

 

다시 정리해보자면 redirect forward 차이점은 크게 두가지로 나눌 있다.

첫째, URL 변화여부(변화 O -> redirect, 변화 X -> forward)

둘째, 객체의 재사용여부(재사용 O -> forward, 재사용 X -> redirect)

 

 

, 시스템(session, DB) 변화가 생기는 요청(로그인, 회원가입, 글쓰기) 경우 redirect방식으로 응답하는 것이 바람직하며시스템에 변화가 생기지 않는 단순조회(리스트보기, 검색) 경우 forward방식으로 응답하는 것이 바람직하다.


728x90