前端 forward和redirect区别

forward(转发)

是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.

浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,

并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址.

redirect(重定向)

是服务端根据逻辑,返回一个状态码(如302),告诉浏览器重新去请求新的地址.所以地址栏显示的是新的URL.

转发是服务器行为,重定向是客户端行为。

  • ——从浏览器地址栏看,转发时不会出现地址栏变化,因为一切都在服务器内部完成,而重定向,由于需要重新请求一个新的地址,地址栏将会变化
  • ——从应用场景上看,典型例子:转发可在用户登陆后根据用户不同跳转到不同模块,而重定向可用于用户注销后重回开始界面
  • ——从效率上看,转发在服务器内部完成,效率较高,而重定向需要浏览器(客户端)跳转请求,效率较低

猜你喜欢

转载自blog.csdn.net/qq_33369979/article/details/87973671