浅谈转发和重定向

请求转发

请求转发是服务器端的一种内部调度机制,用于将客户端的请求从一个资源传递给另一个资源。服务器端内部发生,对于客户端来说是无感知的。

特点:

  • 只发生一次请求,请求转发过程中,客户端的原始请求一直不变,只是在服务器内部进行调度;
  • 在同一web应用内发生,转发的目标资源必须属于同一个应用上下文;
  • 由于请求转发是在服务器端完成的,客户端并不知道请求已经被转发,因此URL地址不会改变;
  • 在请求转发的过程中,可以通过请求对象共享数据,因为转发的请求是同一个请求对象;

请求重定向

请求重定向是服务器端在接收到客户端的请求后,给客户端返回一个新的URL地址,指示客户端重新发送请求的过程;

特点:

  • 发送两次请求,客户端请求地址会发送变化;
  • 无法共享数据,重定向是两次独立的请求,因此无法共享数据;