본문 바로가기
개념공부

Forward 방식과 Redirect 방식의 차이

by 29살아저씨 2022. 6. 30.
반응형

Servlet을 이용하여 client에서 보내준 값을 Servlet1 -> Servlet2로 보내서 띄우기 위해 Forward와 Redirect방식을 이용해서 처리를 하였다.

Client에서 Post방식으로 데이터를 보내줬고, Servlet1에서 doPost로 데이터를 받았다. 그 후 Forward방식과, Redirect를 이용하여서 Servlet2로 보내주었고, Servlet2에서 doGet방식으로 데이터를 받으려고 했다.

 

하지만 Redirect방식만 응답이 있었고, Forward방식은 응답이 없었다.

 

그래서 Client에서 Get방식으로 데이터를 보내줬고, 똑같이 수행하니 Redirect와 Forward 두가지 방식 모두 다 응답이 있었다. 여기서 나는 왜 Get방식으로 보내면 둘 다 응답이 가고, Post방식으로 보내면 리다이렉트만 응답이 가는지에 대해 궁금했고 열심히 구글링을 한 결과 그 이유를 알 수 있었다. 이는 Forward와 Redirect의 데이터 전송 방식에 차이가 있었다.

 

Forward방식

 

Forward 방식은

Client -> Servlet1 -> Servlet2 -> Client 과정으로 클라이언트와 서버 간 데이터 통신이 한번에 이루어진다.

그러므로 req에 들어있는 데이터 값도 유지가 되고, GET이면 GET / POST면 POST로 통신을 한다.

 

Redirect 방식

Redirect 방식은 

Client -> Servlet1 -> Client -> Servlet2 -> Client 과정으로 클라이언트와 서버 간 데이터 통신이 두번 이루어 진다.

그러므로 처음 Client가 보낼 때 req에 들어있는 데이터는 redirect02로 요청하라 할 때 사라져 버리기 때문에 Servlet1에서 세션에 미리 저장해둔 다음 사용한다.

 

https://youngjinmo.github.io/2020/08/servlet-redirect-forward/

 

Servlet - Redirect와 Forward

Redirect 위의 이미지를 설명하면, 리다이렉트는 클라이언트가 redirect01.jsp를 요청했더니 웹서버로부터 반환된 내용에 리다이렉트 내용이 있어서 웹서버로 다시 요청, 웹서버에서 최종적으로 redire

youngjinmo.github.io

 

반응형

댓글