Spring

[Spring] 'return + view명', 'redirect:/주소' 차이

hail2y 2024. 5. 14. 20:19

redirect를 사용하면 HTTP 302를 사용한다. 상태코드 300번대는 리다이렉트를 나타낸다. 그래서 'redirect:/'의 url 주소로 이동하여 처음부터 다시 호출하게 된다. 해당 주소로 이동하면 그 url-pattern을 처리하는 콘트롤러로 가게 되고 작성한 메서드에 따라 지정한 view를 반환한다. 

 

'return + view명'은 서버 내부에서 해당하는 view를 찾아 반환한다. 일반적인 콘트롤러의 반환 형태이다.  참고로 '/'는 웹 애플리케이션의 최상위 경로(root)를 나타내며, 주로 애플리케이션의 시작점 역할을 한다.

 

정리하면 redirect는 페이지 이동의 한 방법이다. 대개 client가 어떤 콘트롤러에 요청을 하면 요청을 받은 콘트롤러에서는 하나의 응답을 한다. 그런데 redirect를 하게 되면 요청을 받은 콘트롤러가 다른 url-pattern로 이동할 수 있게 주소를 반환하고, 다시 그 주소로 콘트롤러에게 전달(요청)해 응답을 받는 것이다. 

 

참고로 forward 방식의 페이지 이동도 있는데 이때는 같은 요청을 바로 다른 콘트롤러에 전달하여 응답을 받는다.

redirect forward
특정 페이지로 이동하라고 웹 브라우저에게 응답 요청을 다른 jsp로 전달
요청 2번 (수동, 자동), 응답 2번 요청 1번 (수동), 응답 1번
주소가 바뀜 주소가 안 바뀜

 

패스트캠퍼스 Spring Mvc 강의 자료 - 남궁성 강사님

 

 

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=sim4858&logNo=221007278858

 

[Spring & Web] return "redirect:/주소" 와 일반 return "view이름"의 차이

이번 포스팅에서는 Spring Web Project에서 URL 요청에 따른 Controller의 처리 중에서 return "red...

blog.naver.com

https://velog.io/@chori/301-302-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

301, 302 리다이렉션의 차이

페이지 리다이렉션을 하는 방법으로 두가지 종류가 있다는 것을 알게되어 이번 기회에 정리하고자 한다. 리다이렉션은 사용자가 특정 페이지를 접근했을 때, 의도적으로 다른 페이지로 이동시

velog.io

https://www.inflearn.com/questions/182650/return-quot-redirect-quot-%EB%A5%BC-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0%EA%B0%80%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4

 

return "redirect:/";를 쓰는 이유가 궁금합니다 - 인프런

안녕하세요?? 해당 강의 12:30 무렵 return 'redirect:/';을 이용해 초기 화면으로 되돌아 가는데, HomeController처럼 return 'home'; 을 사용하면 안되는건가요?? 두 가지 모두 초기 화면으로 돌아가는것 같은

www.inflearn.com