Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

Everything has an expiration date

08 [포워딩(Forwarding)과 리다이렉트(Redirect)] 본문

[WebStudy] Concept

08 [포워딩(Forwarding)과 리다이렉트(Redirect)]

Jelly-fish 2023. 12. 11. 17:25

■■■ 포워딩(Forwarding)과 리다이렉트(Redirect) ■■■

○ 포워딩(Forwarding, 포워드)

   요청을 포워딩할 때 해당 요청은 서버의 다른 자원에 전달된다.
   이 때에는 다른 자원에 이 요청을 처리할 것을 클라이언트에게 알리지 않는다.
   이와 같은 방식의 처리는 웹 컨테이너 안에서만 일어나고
   클라이언트는 알 수 없게 된다.


   포워딩은 리다이렉트와 다르게
   객체를 요청에 담고 해당 요청을 사용할 다음 자원에 전송한다.
   따라서 클라이언트는 포워딩이 발생한 사실을 알지 못하는 것이다.
   포워딩은 클라이언트와 통신 없이 서버에서만 처리되기 때문에
   리다이렉트보다 나은 성능을 갖는다고 할 수 있다.

   


[윤수의 볶음밥 : 다슬이가 만들고, 은하가 전달... 윤수는 은하가 만들었다구 생각!]

- Get, Post : 요청을 전송하는 것에 대한 방식.
- 포워딩, 리다이렉트 : 접수된 요청을 어떻게 처리하는지에 대한 방식.

오라클의 데이터베이스에 잘못이 있을 경우, 어떤 점이 잘못됐는지 알려주어야 하기 때문에
리다이렉트 방식을 아직까지 채용하는 것이다.

○ 리다이렉트(Redirect, 리다이렉팅, 리디렉션)

   클라이언트의 요청을 처리한 후
   컨테이너는 『sendRedirect()』 메소드가 호출되면 브라우저에 응답을 보낸다.
   이 응답에는 브라우저가 웹 컨테이너의 응답을 받은 후
   다시 요청을 보낼 새로운 URL 이 포함되어 있다.
   여기에서 하나의 요청이 종결된다. // check~!!!
   새로 부여받은 URL 로 브라우저가 완전히 새롭게 요청하기 때문에
   이전의 요청 스코프에 저장되어 있던 객체는
   새로운 요청이 이루어지기 전에 소멸된다.
   리다이렉트는 추가적으로 발생한 왕복 처리 때문에 포워딩보다 느리다고 할 수 있다.


   기억해야 할 것은...
   최종적으로 수행해야 하는 작업은 새로운 요청에 의한 것이고
   이것을 클라이언트가 알고 있기 때문에
   브라우저 창의 주소가 처음 요청한 주소가 아니고
   최종 주소값으로 변하게 된다.
   또한, 하나의 요청에 담겨 있던 객체들은 소멸되고
   다음 작업까지 전달되지 않는다.
   
   기본적으로 클라이언트의 입장에서 편한 것은 포워딩이지만
   DB에서 작업이 이루어지고, 다시 그에 대한 응답을 받은 클라이언트가
   새로운 요청을 하게끔 만들어야 하는 경우는 리다이렉트를 사용해야 한다.

[윤수의 볶음밥 : 다슬이가 볶음밥을 안 만들어준다고 하면 혜성이한테 만들어달라고 해야 돼요.
                 그럼, 새우 빼고...양파 많이.. 이런 조건 다시 말해주어야 함.]

클라이언트가 입력한 주소 URL과 다른 주소로 이동이 되는 것을 리다이렉트라고 할 수 있다.      


mbc.co.kr → imbc.com (mbc.co.kr의 서비스가 종료되었으니, imbc.com 주소로 다시 찾아가라고 한 것. 그래서 새 주소를 찾아감...)

웹 컨테이너 : 서블릿 컨테이너를 포함한 더 큰 개념.
포워딩에서는, 윤수의 볶음밥을 누가 만들어 주었는지를 알 수가 없어진다.(클라이언트에게 알리지 않는다.)


리다이렉트 : 같은 요청을 계속해서 해야한다. 그 서비스는 더이상 107번에서 제공하지 않습니다. 108번으로...

'[WebStudy] Concept' 카테고리의 다른 글

10 [쿠키와 세션]  (0) 2023.12.15
09 [JAVA Bean (자바 빈)]  (0) 2023.12.14
07 [GET 방식과 POST 방식]  (1) 2023.12.07
06 [JSP 데이터 송수신 실습]  (1) 2023.12.07
05 [JSP (Java Server Pages)]  (1) 2023.12.06