zoukankan      html  css  js  c++  java
  • 请求跳转、重定向、定时刷新的区别

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

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

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

  • 相关阅读:
    Python使用SMTP模块、email模块发送邮件
    harbor搭建及使用
    ELK搭建-windows
    ELK技术栈之-Logstash详解
    【leetcode】1078. Occurrences After Bigram
    【leetcode】1073. Adding Two Negabinary Numbers
    【leetcode】1071. Greatest Common Divisor of Strings
    【leetcode】449. Serialize and Deserialize BST
    【leetcode】1039. Minimum Score Triangulation of Polygon
    【leetcode】486. Predict the Winner
  • 原文地址:https://www.cnblogs.com/tongxuping/p/6896149.html
Copyright © 2011-2022 走看看