请求跳转、重定向、定时刷新的区别

请求转发:
    一次请求,一次响应 request对象是同一个
    地址栏不会发生变化
    只能用于服务器内部的资源跳转, 并且只能是同一应用中的不同资源上进行跳转, 不可用在不同应用和不同服务器中的资源跳转
    
请求重定向:
    两次请求,两次响应 request对象不是同一个
    地址栏会发生变化
    可以用于服务器内部的资源跳转, 也可以用于不同应用和不同服务器之间的资源跳转
    
定时刷新:
    两次请求,两次响应 request对象不是同一个
    地址栏会发生变化
    可以用于服务器内部的资源跳转, 也可以用于不同应用和不同服务器之间的资源跳转
    和重定向不同的是, 定时刷新可以在刷新到新的地址之间设置一个时间, 在间隔的这段时间内可以输出文本到浏览器并维系一段时间

 

 

那什么时候用哪种方式进行资源的跳转呢?

    如果是同一服务器中的同一应用内部的资源跳转:
        ~如果需要利用request域在跳转的资源之间传输数据, 只能用请求转发
        ~如果不想让地址栏发生变化, 只能用请求转发
        ~如果需要地址栏发生变化, 只能用重定向或定时刷新
        ~如果没有什么特殊需求, 三种方式都可以, 但是推荐使用转发, 可以减少请求次数降低服务器的压力.
        ~如果只是想更新刷新操作, 最好使用重定向或定时刷新, 使用请求转发, 在刷新时会把刚才的操作再做一遍, 可能会导致一些问题, 比如表单重复提交或重复支付订单等
        
    如果是不同服务器或不同应用内部的资源跳转, 只能用重定向或者定时刷新:
        重定向和定时刷新的主要区别在于: 重定向会立即跳转, 而定时刷新可以设置一个时间间隔, 在指定时间后再进行跳转.
        如果在跳转之前需要输出提示信息(如: 注册成功, xx秒后跳转到xxx)只能用定时刷新, 否则两种方式都可以.
           

posted @ 2017-05-23 21:15  大大大圣  阅读(3032)  评论(0编辑  收藏  举报