포워딩 vs 리다이렉트

이연희·2022년 6월 1일
0

Network

목록 보기
10/17

포워딩과 리다이렉트는 JSP 환경에서 다른 페이지로 이동하는 페이지 전환 기능이다. 차이점은 페이지 이동이 어떻게 이루어지는가에 있다.

포워딩

웹브라우저(클라이언트) 웹컨테이너(서버)가 존재한다. 포워딩의 경우 웹브라우저에서 웹컨테이너로 요청을 하면 리다이렉트와 다르게 웹컨테이너에서 자체 처리한 후 웹브라우저가 요청한 정보를 준다. 리다이렉트처럼 재전송이 일어나지 않기 때문에 request나 각종 정보들이 그대로 유지된다.
포워딩은 클라이언트와의 통신 없이 서버에서만 처리되는 것이기 때문에 리다이렉트보다 나은 성능을 보여준다. 그리고 현재 실행중인 페이지와 포워딩에 의해 호출될 페이지는 request, response 객체를 공유한다. 객체를 요청에 담고 해당 요청을 사용할 다음 자원에 전송한다는 뜻이다.

리다이렉트

웹브라우저(클라이언트)에서 웹컨테이너(서버)로 요청을 하면 바로 응답을 주지 않고 새로운 URL에 대한 정보를 준다. HTTP 같은 경우 302 응답을 준다. 웹브라우저는 그 정보를 가지고 새로운 URL로 요청을 한 후 필요한 정보를 받는다. 서버에서 이 요청에 대한 응답은 다른페이지에 있음을 알려주는 것과 같다. 리다이렉트를 사용하면 request, response에 대한 객체가 초기화 된다. 즉, 처음 페이지가 아닌 다른 페이지에 대한 요청이 필요하기 때문에 처음 페이지에 전송한 request등에 대한 정보가 사라진다.
리다이렉트는 추가적으로 발생한 처리 때문에 포워딩보다 느리다. 최초 요청을 받은 첫번째 URL에서 클라이언트에 리다이렉트할 두번째 URL을 리턴하고, 클라이언트는 완전히 새로운 요청을 생성하여 두번째 URL에 다시 요청을 보낸다. 따라서 처음 보냈던 요청 정보는 더이상 유효하지 않다.

profile
공부기록

0개의 댓글