转发与重定向的区别

转发(forward)

服务器在接受到客户端的请求后,对请求数据进行处理,随后由服务器来向转发地址发送请求,并传递请求数据,最后将响应的内容读取过来再发回给客户端。整个过程对于客户端来说,只发送了一次请求,并不关心随后发送了几次请求。

重定向(redirect)

服务器在接受到客户端的请求后,给客户端回应一个带有新地址的302响应码,客户端在收到响应码识别出是「重定向响应码」后,再自动向新地址发送请求,将由新地址来给客户端响应数据

区别:

  1. 转发 发生在服务端
    重定向 发生在客户端

  2. 转发 对于客户端来说只有一次请求,转发的请求是由服务端完成
    重定向 对于客户端来说发送了两次请求,第一次请求和重定向后的请求是独立的两次请求

  3. 转发 后的地址始终是第一次请求的URL,跳转页面的URL并不显示
    重定向后地址是新页面的URL

  4. 转发 的地址只能是同一Web容器下的URL,不能跳转到其他Web容器,但可以获取WEB-INF目录下的页面
    重定向 的地址可以是其他的Web容器,甚至可以是绝对地址,但不能访问WEB-INF目录下的页面

    request.getRequestDispatcher("https://www.google.com").forward(request,response);
    
  5. 转发 会向新地址传送请求和响应对象,地址之间是有关联的,可以共享数据
    重定向 的第一次请求的地址和第二次的新地址是两次独立的请求,之间没有数据的传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值