Java实战分享提升个人技能时时刻刻都在

用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的。根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?拉勾IT课小编为大家分解这两点的区别。

一、从定义上看:

Java实战分享提升个人技能时时刻刻都在插图1

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的URL。所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

二、从原理上看:

Forward(直接转发方式)用的更多一些,一般说的请求转发指的就是直接转发方式。Web应用程序大多会有一个控制器。由控制器来控制请求应该转发给那个信息资源。然后由这些信息资源处理请求,处理完以后还可能转发给另外的信息资源来返回给用户,这个过程就是经典的MVC模式。

Redirect(间接转发方式),有时也叫重定向,它一般用于避免用户的非正常访问。例如:用户在没有登录的情况下访问后台资源,Servlet可以将该HTTP请求重定向到登录页面,让用户登录以后再访问。

、从工作流程上看:

Java实战分享提升个人技能时时刻刻都在插图3

forword过程:客户浏览器发送http请求—>web服务器接受此请求—>调用内部的一个方法在容器内部完成请求处理和转发动作—>将目标资源 发送给客户。

redirect过程:客户浏览器发送http请求—>web服务器接受后发送302状态码响应及对应新的location给客户浏览器—>客户浏览器发现 是302响应,则自动再发送一个新的http请求,请求url是新的location地址—>服务器根据此请求寻找资源并发送给客户。

四、从运用的地方上看

Java实战分享提升个人技能时时刻刻都在插图5

forword一般用于用户登录的时候,根据角色转发到相应的模块;

redirect一般用于用户注销登录时返回主页面或者跳转到其他网站。

五、从效率上看:

forword效率高,而redirect效率低。

通过灵活的在线学习,不断提升个人能力,通过java具体的实质技术,把每一个基础知识打牢固,同时,把很多难点攻破,因为在进行java开发的环节,也有很多具体的问题,因此通过实操来掌握java技术。

原创文章 Java实战分享提升个人技能时时刻刻都在,版权所有
如若转载,请注明出处:https://www.itxiaozhan.cn/20228270.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注