zoukankan      html  css  js  c++  java
  • 请求转发与重定向略解

      从字面的意思理解,重定向,“重”,意味着再一次。就是说,请求转发是一次请求,而重定向就是两次甚至是两次以上的请求。好了,已经解释完了。

       好,废话不多说,直接上图片。先来看一下请求转发的原理图。

    实现请求转发的特点
    1. 用户请求了一次,所以url不变只有一个。由于是1次请求,OneServlet与TwoServlet共享同一个request和response.

    2. 页面跳转在服务器发生的,只能跳转到服务器内部的资源,无法跳转到服务器外部的资源

    此时请求转发是属于服务器行为。

    重定向原理图如下:

    重定向跳转的特点
    1. 用户请求了2次,url就不一样了。跳转前后的2个资源不共享request和response

    2. 跳转的动作是浏览器发生的,意味着可以跳转到任何资源(服务器的内部与外部都可以)

    与请求转发不同的是,浏览器第一次发出请求,服务器接收到第一次请求后,会返回302以及一个地址,浏览器再根据这个地址进行第二次访问。

    转发:跳转前后的2个资源共享同一个request和response,以后可以资源之间可以传递数据

    重定向:跳转前后的2个资源不共享request和response,不能传递数据

       举个生活例子。好比如去商店买东西。

    1、假如你想要一包辣条,然后老板从一个货架上拿了一包辣条给你(请求转发);

    2、或者刚好老板的店辣条卖完了,然后跟你说对面的商店有,叫你去那里买,最后你去了对面的商店买到了辣条(重定向)。

    上面的例子,你=浏览器,老板=服务器,这样一来就很容易理解请求转发和重定向了。1的时候,买辣条的地方不变,2的时候买辣条的地方到的对面的阿商店了,并且还多走了路程,效率比1的时候要低。

  • 相关阅读:
    BZOJ4245: [ONTAK2015]OR-XOR(前缀和)
    [HDU 4433]locker[DP]
    近期刷题的c语言总结。
    《BackboneJS框架的技巧及模式》(4)完结篇
    x+2y+3z=n的非负整数解数
    [置顶] 程序员看婚姻
    BNU29368:Check the Identity(栈)
    Python解决codeforces ---- 1
    带你走进EJB--MDB实现发送邮件(3)
    JIRA简介
  • 原文地址:https://www.cnblogs.com/qinjunlin/p/13722949.html
Copyright © 2011-2022 走看看