`
kakalot
  • 浏览: 7526 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

选择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刷新页面,也不会导致重复提交。
分享到:
评论

相关推荐

    Ajax中get和post区别

    "Ajax中Get和Post请求的区别" Ajax作为异步JavaScript和XML的简写,是一种创建交互式网页的技术。其中,Get和Post是两种常用...在实际开发中,需要根据不同的场景选择使用Get或Post请求,以确保数据的安全性和准确性。

    c# 运用get/post 和使用webservice

    c# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservice

    get、post登录

    本资源"get、post登录"着重介绍了如何利用这两种方法进行登录功能的实现。 1. GET方法: GET是最基础的HTTP方法,通常用于获取资源。在登录场景中,当用户输入用户名和密码后,这些信息会被编码成URL的一部分发送到...

    GET与POST的区别

    "GET与POST的区别" GET和POST是HTTP协议中两种最常用的请求方法,它们都是用来从客户端向服务器端发送请求的,但它们之间有很多不同...我们需要根据实际情况选择使用GET或POST方法,以确保数据安全和高效的数据交互。

    表单提交中get和post的区别

    例如,假设我们有一个表单,包含一个文本框,名称为“Text”,那么在get方式中,提交的URL将是“getpost.asp?Text=http://leewei.blogchina.com”。而在post方式中,表单内各个字段与其内容将被放置在HTML HEADER内...

    get、post区别

    GET和POST方法的选择应基于数据的类型、大小以及安全性需求。GET适用于简单的数据查询和获取,而POST适用于复杂的数据交互和修改。在处理非ASCII字符时,需要注意编码格式的设置,避免出现乱码或数据丢失的情况。...

    浅析Get与Post的区别

    浅析Get与Post的区别 Get和Post是两种常用的表单提交方式,在Web开发中经常被使用。但是,很多人并不了解这两种方式的区别,导致在实际开发中出现问题。本文将详细阐述Get和Post的区别,以便读者更好地理解和使用这...

    html页面模式get/post请求

    通过设置`method`属性,我们可以指定表单使用GET还是POST方式提交数据。例如: ```html <form action="your-api-url" method="post"> <!-- 输入字段 --> <!-- 提交按钮 --> 提交 ``` 对于POST请求,特别是...

    在线PostGet本地版

    在线PostGet本地版是一款专为开发者设计的工具,它提供了与在线PostGet服务相同的功能,但可以在本地运行,便于开发者进行API测试、数据交互以及调试。这个应用简化了HTTP请求的发送过程,使得用户能够在自己的...

    get与post实例

    本文将深入探讨GET和POST的区别、应用场景以及VB(Visual Basic)中如何使用它们。 GET和POST是HTTP请求的核心方法,用于从服务器获取数据或向服务器发送数据。GET主要用于从服务器获取资源,它的参数通常显示在URL...

    ajax POST 与GET提交的区别

    综上所述,GET和POST各有优缺点,在实际开发过程中应根据具体需求选择合适的方法。此外,在使用AJAX技术进行网络请求时,还需要特别注意编码问题,确保客户端和服务器端的编码一致,以避免乱码问题的发生。

    GET与POST用法

    ### GET与POST用法 #### 一、GET方法详解 GET方法是一种常用的数据获取方式,在Web开发中极为普遍。此方法通常用来从服务器获取信息,这些信息可以是文本、图片、视频等多种类型的数据。根据提供的内容,我们可以...

    get 和post 实例

    GET主要用于获取资源,而POST则用于向服务器提交数据。这里我们将深入探讨这两种方法以及如何在多线程环境下创建唯一的HttpClient。 首先,GET和POST的主要区别在于它们处理数据的方式: 1. **GET**:在URL中携带...

    Http协议中POST和GET方法的本质区别

    总结来说,GET和POST的主要区别在于其目的和行为:GET用于获取资源,是安全和幂等的,数据在URL中;POST用于创建或修改资源,可能改变服务器状态,数据在请求体中。在实际开发中,理解并遵循这些原则可以提高系统的...

    google翻译API Get/Post 调用

    使用谷歌翻译API,无论是GET还是POST调用,都需要先完成以下步骤: 1. 注册并获取API密钥:你需要在Google Cloud Console中创建一个项目,并启用Google Translate API,然后生成一个API密钥,这是与API交互的身份...

    VB6Get和POST请求异步处理请求

    在提供的压缩包文件"VB6 XMLHTTP_Get_POST"中,可能包含了一些示例代码或教程,这些资源可以帮助你更深入地理解和应用异步GET和POST请求。通过学习和实践这些示例,你可以熟练地在VB6中处理网络请求,避免UI卡死问题...

    Ajax中get与post请求详解

    Ajax 中 get 与 post 请求的详细解释 Ajax 技术中 get 与 post 两种请求方式是...在 Ajax 中,get 和 post 两种请求方式都有其特点和缺陷,开发者应该根据实际情况选择合适的请求方式,以确保数据的安全性和可靠性。

    C# http Get/POST请求封装类

    首先,了解GET和POST的基本概念。GET请求通常用于获取资源,其参数通过URL查询字符串传递,且对数据量有限制。POST请求则可以携带更多数据,常用于提交表单或上传文件。这两种方法的安全性和可缓存性也有所不同,GET...

    C# 使用Get和Post请求获取数据

    总结来说,C#中的GET和POST请求是与服务器交互的基础,它们分别适用于不同的数据传输场景。GET请求用于获取信息,数据通过URL传递;而POST请求用于提交数据,数据包含在请求体中,适合传递大量或敏感信息。在C#的Web...

    http get post 请求模拟器

    HTTP是互联网上应用最为广泛的一种网络协议,GET和POST是HTTP协议中的两种主要请求方法,它们在Web开发中扮演着重要角色。理解这两者的工作原理和区别对于进行网络编程至关重要。 1. GET请求: GET请求是HTTP中最...

Global site tag (gtag.js) - Google Analytics