SpringMVC

[SpringMVC] Server응답 처리방식(Redirect, Forward)

wookjae 2021. 9. 8. 01:39

Response Flow.. ?

* SpringMvc는 Client로 부터 요청이 발생되면 그 요청주소를 분석하여 매핑이되는 메서드를 호출하게 되며, 결과 처리이후 반환정보(View, Data) 생성하여 Client에게 전달한다.  

* 서버의 응답결로 String, Model, ModelAndView 는 브라우저의 응답결과로 화면(View) 을 경로지정하여 반환한다. 

 

Redirect ?

* Server에서 Client에게 응답결과로 View(화면)이 아닌 재 요청할 주소를 응답결과로 전달하는 것을 의미한다. 

* Client는 응답결과로 받은 재 요청할 주소를 직접요청하게되며, 주소창의 URL(주소)는 변경된다.

* Redirect는 새로운 요청(Request)이 발생하는 것이므로 HttpServletRequest 객체는 새롭게 생성되며, HttpSession 객체는 유지한다.

 

Forward ?

* Server 상 에서 코드의 흐름이 이동되는 것을 의미한다.

* Browser는 다른곳으로 흐름이 이동된 것을 알수 없어, 주소상의 URL은 변경되지 않는다. 

* Forward는 Client에게 새로운 요청(Request)하는 것이 아닌 서버상의 이동이므로 HttpServletRequest 객체와 HttpSession 객체는 유지된다.

 


Redirect. Forward Exercise..

 

 

1. 리다이렉트,포워드(Response) 컨트롤러 생성

 

 

 

 

2. TestRedireFowardController 응답결과 확인 (URL Redirect Test)

Redirect요청 

* Server에서 Client에게 응답결과로 View(화면)이 아닌 재 요청할 주소를 응답결과로 전달. 

* Client는 응답결과로 받은 재 요청할 주소를 직접요청 -> 주소창의 URL(주소)는 변경, HttpServletRequest 재 생성

("/redirectTest" --> "/redirectTest/sub")

 

 

 

 

3. TestRedireFowardController 응답결과 확인 (URL Forward Test)

Forward요청 

* Server 상 에서 코드의 흐름이 이동, HttpServletRequest, HttpSession 기존유지.

* 브라우저의 상 주소(URL)은 변경되지 않는다. ("/fowardTest" --> "/fowardTest")