사용자가 요청을 보냈을 때, 서버에서 응답으로 상태코드 300번대를 응답하면 이는 redirect요청이다. 이는 다른 URL로 재요청하라는 의미로 응답헤더를 주지만 바디로는 전송하지 않는다. 위 그림에서는 write.jsp로 요청을 했으나 서버에서 응답으로 login.jsp로 재요청하라는 메시지를 보낸다. 메시지를 보내면 브라우저에서는 자동으로 서버에서 알려준대로 재요청을 한다. 즉, 요청은 2번일어나고 처음에는 수동, 2번째에는 자동으로 일어난다. 처음 요청이 GET이든 POST든 상관없이 두번째 자동 요청은 GET으로 요청한다.
위 그림에서 사용자가 write.jsp로 요청을 보냈을 때, write.jsp가 자신이 처리할 내용이 아닐 경우, 이를 login.jsp로 전달해준다. 전달받은 요청을 login.jsp가 처리하고 클라이언트에 응답한다. login.jsp가 앞에서 전달받을 때, request뿐만 아니라 response도 받아서 이를 처리한다. redirect와 달리, forward는 요청이 한번이다.