리다이렉트(Redirect), 포워드(Foward)

JIHYE·2023년 4월 11일
0

[CS지식]

목록 보기
4/8
post-thumbnail

1. 리다이렉트와 포워드

  • 특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환됨

  • 리다이렉트는 페이지 전환 주체가 클라이언트이며, 페이지를 전환하는 방법은 접속한 URL이 아닌 다른 URL로 직접 접속히야함

  • 포워드서버가 전환 주체이며, URL 주소가 바뀌지 않고도 서버 내부의 동작을 통해 다른 응답을 클라이언트에게 내려줌

2. 리다이렉트란(Redirect)?

  • 리다이렉트는 서버에서 클라이언트가 요청한 URL에 대한 응답으로 다른 URL로 재접속 하라고 명령을 보내는 것

  • URL응 다시 가르키다 라는 뜻을 가지며, 클라이언트는 해당 URL로 다시 요청하게 됨

  • 리다이렉트가 일어나면 URL 주소가 바뀌면서 다시 접속되는 것을 확인할 수 있어, 클라이언트 또한 리다이렉션이 일어났음을 알 수 있음

  • 클라이언트는 보통 웹브라우저를 의미. 웹브라우저는 서버에서 Redirect의 응답코드 300번대가 오면 리다이렉트 해야하는 URL로 다시 요청을 보냄

3. 포워드(Foward)

  • 클라이언트가 한 번 더 요청을 보내도록 하는 리다이렉트와 다르게 포워드는 서버 내부에서 일어하는 호출

  • 클라이언트의 URL에 대한 요청이 들어오면 해당 URL이 다른 URL로 포워딩 된 것이 확인되었을 경우 서버에서 포워딩 된 URL의 리소스를 확인하여 클라이언트에 응답

  • 포워딩이 일어나면 클라이언트단 에서는 아무런 동작을 하지 않으며, 모든 동작은 서버에서 처리

  • 클라이언트(웹브라우저)에서 요청한 URL은 물론 요청정보가 바뀌지않음

4. 사용법

  • 리다이렉트클라이언트의 요청에 의해 서버의 DB에 변화가 생기는 작업에 사용(로그인, 회원가입, 글쓰기)

  • DB의 유저 테이블을 변경하는 회원가입과 같은 경우에는 리다이렉트가 사용되어야 요청을 중복해서 보내는 것을 방지할 수 있음

  • 포워드특정 URL에 대해 외부이 공개되지 말아야 하는 부분을 가리는데 사용하거나 조회를 위해 사용

  • 스프링의 경우 /WEB-INF에 있는 view에 대한 정보들이 외부에 직접 공개 되지 말아야 할 때 내부에서 포워딩을 통해 /WEB-INF경로를 가림

  • 예를 들어 helloWorld/jihye 로 요청하면 helloWorld/WEB-INF/jihye로 응답하는 형식

  • 사용자가 보낸 요청정보를 이용하는 글쓰기 기능응 수행하는 CGI(Commkn Gateway Interface)가 있다면, 이는 redirect를 사용해야함

  • 사용자가 실수 혹은 고의로 글쓰기 CGI응답 페이지에서 새로고침을 누르게 되면 forward의 경우 요청 정보가 그대로 살아있기 때문에 똑같은 글이 여러번 등록됨

  • redirect의 경우 처음 글을 작성할 때 보냈던 요청은 존재하지 않으므로 글쓰기가 여러번 수행되지 않음

[출처]

0개의 댓글