JSP환경에서 현재 작업중인 페이지에서 다른 페이지로 이동하는 두가지 방식의 페이지 전환 기능!!
리다이렉트 Redirect | 포워드 Forward | |
---|---|---|
페이지 전환 주체 | 클라이언트 | 서버 |
URL의 변화 여부 | 변화 O | 변화 X |
객체의 재사용 여부 | 재사용 X | 재사용 O |
: 서버에서 클라이언트에서 요청한 URL에 대한 응답에서 다른 URL로 재접속하라고 명령을 보내는 것 (Re-Direct -> URL을 다시 가리킨다)
즉, 클라이언트는 해당 URL로 다시 요청! 리다이렉트가 일어나면 URL 주소가 바뀌면서 다시 접속되는 것을 확인할 수 있어, 클라이언트 또한 리다이렉션이 일어났음을 알 수 있다.
** 클라이언트 : 웹브라우저
🌟⭐️
리다이렉트는 클라이언트의 요청에 의해 서버의 DB에 변화가 생기는 작업에 사용된다!!!(로그인, 회원가입, 글쓰기) 예를 들어 DB 유저 테이블을 변경하는 회원가입과 같은 경우에는 리다이렉트가 사용되어야 요청을 중복해서 보내는 것을 방지할 수 있다.
: 서버 내부에서 일어나는 호출 -> 클라이언트의 URL에 대한 요청이 들어오면 해당 URL이 다른 URL로 포워딩 된 것이 확인되었을 경우 서버에서 포워딩된 URL의 리소스를 확인하여 클라이언트에 응답한다
🌟⭐️
포워드는 특정 URL에 대해 외부에 공개되지 말아야 하는 부분을 가리는데 사용하거나 조회를 위해 사용된다!!!(리스트보기, 검색)
스프링의 경우, /WEB-INF에 있는 view에 대한 정보들이 외부에 직접 공개되지 말아야 할 때 내부에서 포워딩을 통해 /WEB-INF 경로를 가리키도록 한다. 예를 들어 sujin.com/96로 요청하면 sujin.com/WEB-INF/96을 응답하는 형식이다.