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번 |
주소가 바뀜 | 주소가 안 바뀜 |
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
301, 302 리다이렉션의 차이
페이지 리다이렉션을 하는 방법으로 두가지 종류가 있다는 것을 알게되어 이번 기회에 정리하고자 한다. 리다이렉션은 사용자가 특정 페이지를 접근했을 때, 의도적으로 다른 페이지로 이동시
velog.io
return "redirect:/";를 쓰는 이유가 궁금합니다 - 인프런
안녕하세요?? 해당 강의 12:30 무렵 return 'redirect:/';을 이용해 초기 화면으로 되돌아 가는데, HomeController처럼 return 'home'; 을 사용하면 안되는건가요?? 두 가지 모두 초기 화면으로 돌아가는것 같은
www.inflearn.com
'Spring' 카테고리의 다른 글
[Spring] @Lookup - DL(의존관계 조회/탐색) (0) | 2024.08.25 |
---|---|
[Spring] 객체 지향 프로그래밍의 특징과 좋은 객체 지향 설계의 원칙 5가지, SOLID (0) | 2024.08.17 |
[Spring] Intellij 단축키 모음 (-ing) (0) | 2024.06.26 |
[Spring] MyBatis Repository 인터페이스와 XML 매핑 파일 연결 (3) | 2024.06.12 |
[Spring] JPA, Hibernate, Spring data JPA (2) | 2024.06.11 |