美文网首页
redirect重定向(间接转发)和forward转发(直接转发

redirect重定向(间接转发)和forward转发(直接转发

作者: 50e383299c68 | 来源:发表于2019-12-11 09:26 被阅读0次

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

    直接转发 forward:浏览器发出一次请求,服务器的一个信息资源响应之后,转发给服务器的另一个信息资源处理,之后再返回信息到浏览器。
    间接转发 redirect:浏览器发出一次请求,服务器的一个信息资源响应之后,返回给浏览器一个url。浏览器自动去请求这个url。

    举个通俗的例子:
    直接转发就相当于:“A找B借钱,B没有,B去找C借,借到借不到都会把消息传递给A”;
    间接转发就相当于:"A找B借钱,B说没有,让A去找C借。然后A去找C借"。

    直接请求转发图解:

    直接请求转发图解

    上图所示的直接转发请求的过程如下:

    1. 浏览器向Servlet1发出访问请求;

    2. Servlet1调用forward()方法,在服务器端将请求转发给Servlet2;

    3. 最终由Servlet2做出响应

    间接请求转发图解:

    间接请求转发图解

    上图所示的间接转发请求的过程如下:

    1. 浏览器向Servlet1发出访问请求;

    2. Servlet1调用sendRedirect()方法,将浏览器重定向到Servlet2;

    3. 浏览器向servlet2发出请求;

    4. 最终由Servlet2做出响应。

    springboot中的实现是:httpServletResponse.sendRedirect(url); url是转发的响应地址

    请求转发和重定向的区别和共同点:

    请求转发和重定向的区别和共同点

    参考文章https://www.cnblogs.com/fankailei/p/10008512.html

    参考视频  https://www.bilibili.com/video/av40056765?p=32

    相关文章

      网友评论

          本文标题:redirect重定向(间接转发)和forward转发(直接转发

          本文链接:https://www.haomeiwen.com/subject/hbtogctx.html