选择GET还是POST?

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

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

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

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

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

[b]经验总结[/b]
1 幂等性的操作应当使用GET,哪怕是表单内容很多的查询,也应当把表单的提交方式设置成GET
2 保存更新操作使用POST,并且操作成功的使用redirect 转到另外的页面展示保存结果。
比如 保存成功后转到 列表页面
这样的好处是,即使用户用F5刷新页面,也不会导致重复提交。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值