SpringBoot

리다이렉트(redirect)와 포워드(forward)의 차이

심나라 2022. 7. 23. 20:51
728x90

1. redirect:<URL> - URL로 리다이렉트 (리다이렉트는 새로운 URL로 요청이 됩니다.)
리다이렉트는 클라이언트가 서버로 요청을 보내면 서버에서 요청에 대한 처리를 한 후 클라이언트에게 새롭게 요청할 URL을 알려줍니다.
서버로 부터 응답 URL을 받은 클라이언트는 응답받은 URL을 다시 호출하기 때문에 브라우저에서 URL 경로가 변경됩니다.

2. forward:<URL> - URL로 포워드 (포워드는 기존 요청 값들이 유지된 상태로 URL이 전환됩니다.)
포워드는 클라이언트가 서버로 요청을 보내면 서버가 받아서 일부 처리를 하고 나머지는 같은 서버의 다른 응용프로그램에서 처리하도록 포워드 됩니다. 포워드 받아 처리 후 클라이언트로 응답을 하기 때문에 클라이언트의 URL 경로가 변경되지 않습니다.

클라이언트가 서버로 요청을 하면 생성되는 객체가 request와 response 입니다. 요청에 대한 응답을 받을 때까지 이 객체를 계속 유지가 됩니다.


리다이렉트는 요청과 응답이 여러번 실행될 수 있기 때문에 request, response 객체가 여러번 만들어 집니다. 그러나, 포워드는 클라이언트의 요청에 대해서 결과를 서버로 부터 한번 만 받고 끝나기 때문에 이 객체가 한 번만 만들어 집니다.

728x90