重定向和转发

一、介绍

转发和重定向是两种常见的网页跳转方式

它们都能让用户从一个网页跳转到另一个网页。

二、转发

转发是通过服务器内部的转发机制实现的。

当服务器接收到一个请求后,根据请求的URL地址找到对应的资源,然后将该请求转发给另一个资源进行处理,最终将该资源的处理结果返回给客户端。

在这个过程中,客户端只知道自己访问了一个资源,而不知道这个资源是被转发到的。

转发时客户端只发送了一次Http请求

三、重定向

重定向是通过HTTP响应头中的Location字段实现的。

当服务器接收到一个请求后,发现该请求需要访问另一个资源才能得到响应,于是在HTTP响应头中设置Location字段,告诉客户端重新发送一个请求,访问另一个资源。

当客户端收到这个响应后,会根据Location中的地址重新发送一个请求,访问另一个资源,因此客户端会知道自己访问了两个资源。

重定向时客户端 发送了两次Http请求

四、转发和重定向的区别

1.可见性

转发对客户端是不可见的,而重定向对客户端是可见的。

当服务器通过转发将请求转发给另一个资源进行处理时,客户端只知道访问了一个资源,而不知道这个资源是被转发到的。

而当服务器通过重定向告诉客户端重新发送一个请求时,客户端会知道自己访问了两个资源。

2.速度

转发比重定向快。

因为转发是在服务器内部进行的,不需要向客户端发送HTTP响应头,也不需要客户端重新发送一个请求,因此速度比重定向快。

而重定向需要向客户端发送HTTP响应头,并告诉客户端重新发送一个请求,然后客户端又会去请求一个新的资源,因此速度较慢。

3.访问受保护的页面

转发可以访问相对路径和绝对路径的资源,而重定向只能访问绝对路径的资源。

因为转发是在服务器内部进行的,所以可以访问当前服务器上所有资源,可以访问受保护的资源,比如WEB-INF下的资源

而重定向是在客户端进行的,只能访问被服务器对外开发的,允许的资源,不能访问比如WEB-INF下的资源

4.请求次数

转发只需要发送一次请求,而重定向需要发送两次请求。

因为转发是在服务器内部进行的,客户端只需要发送一次请求即可完成跳转。

而重定向需要向客户端发送HTTP响应头,并告诉客户端重新发送一个请求,因此客户端需要发送两次请求。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值