zoukankan      html  css  js  c++  java
  • 选择GET还是POST?

     

    做web开发的人都会遇到下面几个问题:
    1 该选择用POST还是用GET呢
    2 是否需要一定手段避免重复提交呢
    3 还有一个疑问就遇到history.go(-1)的时候,提示网页已过期怎么办

    有些程序员理所当然的认为网页过期是无可争议的,但是有没有思考一下如何避免呢。

    我的一些经验如下:
    理论依据1
    数学上有个概念叫做幂等性,意思是一个函数执行n次的结果和一次的结果一样
    比如 下面的函数就是幂等的
    f(x) = C; C是常量  
    f(x) = x;

    计算机变成语言的一个功能模块通常也叫做函数,也有幂等性的概念。
    意思是 执行n和执行一遍的对系统的作用是一样的。
    这一个概念在web开发的时候,非常重要。因为我们需要判断,一个请求是否要避免重复提交,首先需要判断这个请求的操作是否是幂等的。也就是说需要判断这个操作对系统产生的影响。

    归结起来,查询操作,可以认为是幂等的,无论一次还是多次,都不会导致系统的数据发生变化。
    而提交保存的操作认为是非幂等的,重复提交可能导致产生冗余的数据。
    理论依据2
    GET 请求不会导致网页已过期,而POST会

    经验总结
    1 幂等性的操作应当使用GET,哪怕是表单内容很多的查询,也应当把表单的提交方式设置成GET
    2 保存更新操作使用POST,并且操作成功的使用redirect 转到另外的页面展示保存结果。
    比如 保存成功后转到 列表页面
    这样的好处是,即使用户用F5刷新页面,也不会导致重复提交。
     
  • 相关阅读:
    迭代器,生成器,可迭代
    变量名
    python安装
    pickle.dump() pickle.load() keyword.iskeyword() keyword.kwlist random.randint(1,100) random.choice(x) random.shuffle()
    time.time() time.asctime() time.localtime()
    input() raw_input() sys.stdin.readline()
    BufferedReader用法
    汉诺塔问题
    冒泡排序、选择排序和插入排序实例
    Connection reset by peer
  • 原文地址:https://www.cnblogs.com/bicabo/p/2117271.html
Copyright © 2011-2022 走看看