redirect와 forward

SOLEE_DEV·2023년 4월 10일
0

Spring

목록 보기
7/8
post-custom-banner

redirect와 forward

1. redirect와 forward의 처리 과정 비교

1) redirect

  • status-code : 300 (redirect = 다른 URL로 재요청)

  • 브라우저가 자동으로 Location을 읽어서 해당 위치로 이동!

  • 과정 : 1. 요청 -> 2. 응답 => 3. 요청 -> 4. 응답

  • 어떤 요청이든 redirect로 의한 호출은 get으로 호출

  • 요청 / 응답 모두 2번!

2) forward

  • 클라이언트 요청시, 서버 처리 후 일부 요청을 forward location에 전달
  • 과정 : 1. 요청 -(전달)-> 2. 요청 (forward) -> 3. 응답
  • write.jsp (Controller 역할 - 처리) / request (Model - 객체) / login.jsp (View - 최종 응답)
  • 이 때, 두번째 요청시 첫번째 요청의 response 내용을 함께 전달!
    ex) 잘못된 요청을 맞는 부서에 자동으로 전달~
  • 스프링이 forward를 통해 MVC를 구현함

2. RedirectView

1) 스프링 redirect처리 과정

  • /ch2/register/save (요청) -> DispatcherServlet -> Controller (요청 처리를 위한 컨트롤러 호출) -> redirect:/register/add 응답
  • RedirectView 응답 생성
(응답 헤더)
HTTP/1.1 302
Location:/ch2/...
  • 응답

3. JstlView (JSP뷰 처리)

  • /ch2/register/add (요청) -> DispatcherServlet -> Controller (요청 처리를 위한 컨트롤러 호출) -> registerForm 응답 -> DS가 해당 응답을 InternalResourceViewResolver에게 전달 -> registerForm 해석 -> 해당 Resolver가 해당 파일의 진짜 이름을 DS에게 전달 /WEB-INF/views/registerForm.jsp -> JstlView가 해당 .jsp에게 Model을 넘겨줌 (JSP 뷰)

4. InternalResourceView (forward)

1) 과정

  • /ch2/register/save (요청) -> DispatcherServlet -> Controller (요청 처리를 위한 컨트롤러 호출) -> forward:/register/add ->
profile
Front-End Developer
post-custom-banner

0개의 댓글