리다이렉트(Redirect) vs 포워드(Forward)

FE.1·2023년 10월 23일
0

리다이렉트와 포워드

특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환된다. 이 두 기능은 페이지가 전환된다는 점에서 비슷한 역할을 한다. 하지만 페이지를 전환하는 주체가 다르다. 이 차이점이 동작에 큰 영향을 미친다.

리다이렉트

  • 페이지 전환 주체: 클라이언트

포워드

  • 페이지 전환 주체: 서버

리다이렉트(Redirect)

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

  • 서버는 클라이언트에게 HTTP 상태 코드 3xx와 함께 새로운 URL을 제공한다.

  • 이로 인해 클라이언트는 해당 재접속할 URL로 다시 요청하게 된다.

  • 클라이언트 또한 리다이렉션이 일어났음을 인지할 수 있다.


포워드(Forward)

  • 포워드는 서버 내부에서 일어나는 호출이다. (리다이렉션은 2번의 요청-응답을, 포워드는 1번의 요청-응답만을 보내는 꼴이다)

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

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

  • 클라이언트는 포워딩이 일어났음을 인지할 수 없다.


사용

  • 리다이렉트는 클라이언트의 요청에 의해 서버의 DB에 변화가 생기는 작업에 사용된다. 예를 들어 DB의 유저 테이블을 변경하는 회원가입과 같은 경우에는 리다이렉트가 사용되어야 요청을 중복해서 보내는 것을 방지할 수 있다.

  • 포워드는 특정 URL에 대해 외부에 공개되지 말아야 하는 부분을 가리는데 사용하거나 조회를 위해 사용된다.
    스프링의 경우, /WEB-INF에 있는 view에 대한 정보들이 외부에 직접 공개되지 말아야 할 때 내부에서 포워딩을 통해 /WEB-INF 경로를 가리키도록 한다.

profile
공부하자!

0개의 댓글