转发和重定向

在JavaWeb开发中,转发和重定向是两种常见的网页跳转方式,它们都能让用户从一个网页跳转到另一个网页。然而,它们之间存在一些差异。

转发和重定向图解:

含义:

  1. 重定向
    重定向是一个客户端的动作过程,客户端在第一次请求http时,Web服务器返回给客户端一个新的地址和一个302的Web状态码,然后客户端再次请求这个新的地址的过程

  2. 转发
    转发是一种服务器的动作过程,客户端在请求http时,Web服务器根据请求进行处理和转发,然后找到另一个目标资源,并将该资源返回的过程

换个方法解释:

  转发相当于,张三(客户端)向你(服务端)借钱,但是你兜里没钱,所以你去找李四借到钱之后借给张三。对于张三而言并不知道你的钱是和李四借的。

  重定向相当于,张三向你借钱,你兜里没钱,你告诉他李四有钱,所以张三再次去找李四借钱。

请求方式

请求转发是服务器端的行为,服务器端代替客户端发送请求,并将结果返回给客户端;

请求重定向是客户端的行为

数据共享

请求转发是服务器端实现的,所以整个执行流程中,客户端(浏览器端)只需要发送一次请求,因此整个交互过程中使用的都是同一个 Request 请求对象和一个 Response 响应对象,所以整个请求过程中,请求和返回的数据是共享的;

请求重定向客户端发送两次完全不同的请求,所以两次请求中的数据是不同的。

最终 URL 地址不同

请求转发是服务器端代为请求,再将结果返回给客户端的,所以整个请求的过程中 URL 地址是不变的;而请求重定向是服务器端告诉客户端,“你去另一个地访问去”,所以浏览器会重新再发送一次请求,因此客户端最终显示的 URL 也为最终跳转的地址,而非刚开始请求的地址,所以 URL 地址发生了改变。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值