*redirect
MDN 일부 내용
https://developer.mozilla.org/ko/docs/Web/HTTP/Redirections
1. HTTP에서, 리다이렉션은 요청에 대해 특별한 응답(리다이렉트)을 전송함으로써 촉발됩니다.
2. HTTP 리다이렉트는 3xx 상태 코드를 지닌 응답입니다. 리다이렉트 응답을 수신한 브라우저는, 제공된 새로운 URL을 사용하며 그것을 즉시 로드합니다:
3. 대부분의 경우, 리다이렉션은 사용자에게는 보이지 않는데다가, 적은 성능 저하를 일으킵니다.
내용이 복잡하지만 제가 이해하고 제가 주로 쓰는 용도로 정리하겠습니다.
1. redirect는 브라우저의 해당 url을 변경할떄 씁니다.
2. request, response 객체가 소멸됩니다.
3. 보통 컨트롤러로 재요청하기 떄문에 .do로 호출됨
*forward
1. 브라우저의 url을 변경하지 않음(ex) login.do url에서 forward:selectLogin.jsp를 호출해도 사용자가 보는 url은 login.do로 유지됨)
2. request, response 객체가 유지됩니다. (재사용가능)
여기서 주의 forward는 게시글 등록, 회원가입등 서버에 무언가 요청해서 처리할떄 사용자가 새로고침을 눌러버리면 req,res 객체가 유지되기떄문에 여러번 게시글 등록이나 유저가입요청이 들어올 수 있다.
그렇기 떄문에 서버에 요청해서 처리할떈 redirect를 쓴다
'개발 > Spring' 카테고리의 다른 글
[kmhDev] Controller 에서 해당 페이지에 alert 띄우기 (0) | 2020.09.07 |
---|