면접대비

forward와 redirect의 차이

rins 2019. 3. 25. 19:10

리다이렉트

http프로토콜로 정해진 규칙이다.

서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청할 수 있는데 이를 리다이렉트라고 한다.

이미지를 보면 이해가 더 쉽다.

 

 

 

클라이언트가 요청을 하면 서버는 클라이언트에 HTTP상태코드 302로 응답을 한다. 이떄 헤더 내 Location값에 이동할 URL을 추가한다.

클라이언트는 응답을 받게되면 헤더에 Location이 포함된URL로 재 요청을 한다. 그리고 이때, 브라우저의 주소창이 전송받은 URL로 바뀌게 된다.

 

sendRedirect()메소드를 사용하는게 일반적이다.

 

 

forward

포워드는 웹브라우저에서 servlet1에게 요청을 보내면 servlet1은 요청을 처리하고, 결과를 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 servlet2에 전송한다. (이것이 forward작업이다.)

그 후에 servlet2는 servlet1로 부터 받은 HttpServletRequest와 HttpServletResponse를 이용해서 처리한 후 웹브라우저에게 결과를 전송한다.

 

 

 

포워드의 ㅇ이해를 쉽게하는 이미지.

(즉 서블렛이 기능을 나눠서 처리한다고 생각하면 쉽다.)

 

 

 

참고자료

https://www.edwith.org/boostcourse-web/lecture/19878/

'면접대비' 카테고리의 다른 글

SSL/TLS (좀 더 정리 필요할듯)  (0) 2019.03.21
자바의 가비지 콜렉션(Garbage Collection)  (0) 2019.03.13