`
zljpp
  • 浏览: 259962 次
社区版块
存档分类
最新评论

提交方法:post和get比较

    博客分类:
  • java
阅读更多

    我们知道,从一个页面转向另一个页面的请求方式有两种,那就是:Post和Get. 
    二者有如下的区别: 
    首先:Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。 
    其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约1024字节. 
    再次:Post就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。 
    下面就来说说页面之间传值的方法:我们的form表单的method方法,有两个,post,get.它在页面传值的时候的区别也就是上面提到的三点. 

    post方法. 
1.在页面上新建一个form,不要加上runat="server"的标志,当然在这个窗体下的控件也就不用想用Viewstate来传值了.当在其他有runat="server"的窗体的中的按钮事件中,手动调用新建form的submit() 函数. 
传送页面代码如下: 




    Ajax, 选择的是GET还是POST?

  当我们不通过重新加载页面,用Ajax访问服务器的时候,有两个选择可以将请求信息传送到服务器上。这两个选择分别是GET和POST。

  在把请求信息发送到服务器上以加载新的页面时,这两个选择有两个不同之处。第一个区别是你是请求了信息的一小部分而不是整个页面。第二个区别也是最明显的区别是由于Ajax请求不会出现在地址栏中,因此当发送请求时,在访问者的屏幕上是看不出什么异同的。使用GET生成调用不会暴露域和它们的值,使用POST也不会暴露。因此,我们要怎样在这两者之间作出选择呢?

  初学者可能犯的一个错误是对于大多数的调用都使用GET命令,仅仅因为这一命令相对而言更容易编写。GET与POST调用之间最显著的差异是当发出加载新页面请求时,GET调用对于同样数量的数据有着相同的限制。唯一的区别是你处理的少量的Ajax请求数据,而你并不想通过这种长度运行的限制来完成页面的加载。初学者可能会在少数情况下,如他们确实需要传送更多信息时,使用POST。

  当我们有大量数据要传送时最好的办法是一次发出多个只传递少量信息的Ajax调用时。如果你正用一个Ajax调用发送大量数据,那么最好是结束这种做法,因为这样做并不能节约时间。

  因此,需要传送大量数据能成为我们在GET和POST之间犹豫不决的理由吗?这两个方法都是为不同的目的而设计的,两者的不同也在于其使用目的。这一说法不仅适用于GET和POST的使用,也适用于其他的方法。

  GET的目的就如同其名字一样是用于获取信息的。它旨在显示出页面上你要阅读的信息。浏览器会缓冲GET请求的执行结果,如果同样的GET请求再次发出,浏览器就会显示缓冲的结果而不是重新运行整个请求。这一流程不同于浏览器的处理过程,但是它是有意设计成这样以使GET调用更有效率。GET调用会检索要显示在页面中的数据,数据不会在服务器上被更改,因此重新请求相同数据的时候会得到相同的结果。

  POST方法应该用于你需要更新服务器信息的地方。如某调用要更改保存在服务器上的数据,而从两个同样的POST调用返回的结果或许会完全不同,因为第二个POST调用的值与第一个的值不相同,这是由于第一个调用已经更新了其中一些值。POST调用通常会从服务器上获取响应而不是保持前一个响应的缓冲。

  因此,不要用数据的量来决定是要选择GET还是POST,而应该按照目的在两者间作出选择。如果调用是要检索服务器上的数据则使用GET。如果要检索的值会随时间和更新进程的改变而改变则要在GET调用中添加一个当前时间参数,这样后面的调用才不会使用先前的不正确的缓冲。如果调用是向服务器上发送任意数据,就可以使用POST。

  事实上,我们不应该不仅仅只将这个标准作为选择怎样使用GET和POST调用的标准,在处理页面处理形式的时候也可以将它作为取舍这两个调用的标准。

21
6
分享到:
评论
13 楼 owenludong 2012-06-11  
分析的太彻底了。一直不知道GET请求会缓存请求结果。
12 楼 wuhoufeng 2012-06-11  
楼才是正解
11 楼 wuhoufeng 2012-06-11  
其实这个大小是和具体实现相关的协议里没限制这个
10 楼 qiaoshaohua15 2012-06-11  
蒹葭从风 写道
用ajax的get请求时,在IE上会有缓存,有时会出现不是自己想要的结果。

加上时间戳就不会缓存
9 楼 蒹葭从风 2012-06-11  
用ajax的get请求时,在IE上会有缓存,有时会出现不是自己想要的结果。
8 楼 satanultra 2012-06-11  
怎么读起来那么拗口,跟机器翻译的英文文章似的。
7 楼 happysoul 2012-06-11  
这文章确实毁人不倦啊。。。而且还是在首页
如果像你说的post就2m的话,那么视频网站什么的就别活了,包括邮件的附件上传
6 楼 kjj 2012-06-11  
其次:Post传输的数据量大,可以达到2M,


试试传个2.00000000000001m的文件能不能成功!!
5 楼 sunzhiqiang1984 2012-06-11  
原创不错,但文章有硬伤。快把1、2、3的问题回复下吧。
4 楼 dieslrae 2012-06-11  
delete和put你怎么不说
3 楼 skylvyou 2012-06-11  
 当我们有大量数据要传送时最好的办法是一次发出多个只传递少量信息的Ajax调用时。
这句话我还真没看懂...
2 楼 paohui02 2012-06-11  
Post和Get方法传输的数据大小,由客户端浏览器和WEB服务端 决定的。。。。。
1 楼 zjfcyefeng 2012-06-11  
其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约1024字节.
???????

相关推荐

    ajax POST 与GET提交的区别

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

    对Django 中request.get和request.post的区别详解

    Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 POST和GET都...

    Web应用安全:HTTP协议GET和POST的使用区别.pptx

    在Web应用安全中,了解HTTP协议的GET和POST方法的使用差异至关重要。GET和POST是HTTP协议中最基本的两种请求方法,它们各自有着特定的用途和限制。 1. GET方法: GET方法通常用于从服务器获取资源。在URL中,查询...

    Web应用安全:HTTP协议GET和POST的使用区别实验.docx

    在这个例子中,表单的提交方法为`POST`,提交的目标URL为`a2.php`,提交的数据包括`username`和`age`两个字段。 2. **POST请求头部信息分析** - 在Firebug中可以看到POST请求的头部信息。其中,`Content-Length`...

    表单提交中get和post的区别

    表单提交中get和post的区别 在Web开发中,表单提交是非常常见的一种交互方式,而在表单提交中,get和post是两种常用的提交方式。它们之间的区别是每个Web开发者都需要了解的。 首先,让我们来了解一下get和post的...

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

    HTTP中的POST和GET方法是两种最常用于网页开发的数据传输方式,它们在原理和表现形式上存在本质区别。 首先,从原理上看,GET方法通常用于获取资源信息,它通过URL来传递参数,URL全称为资源描述符,表示网络上的一...

    在线PostGet本地版

    7. **API测试**:在线PostGet本地版是API测试的好工具,用户可以快速测试API接口的正确性和效率,无需复杂的配置或者安装额外的软件。 8. **离线工作**:由于是在本地运行,即使没有互联网连接,用户依然可以使用这...

    HttpTest: GET POST

    本篇将详细探讨两种主要的HTTP请求方法:GET和POST。 GET和POST是HTTP协议中最基础且最常用的请求方法,它们在Web应用程序中扮演着至关重要的角色。 **GET请求**: 1. **定义**:GET方法用于从服务器获取资源,它...

    http 测试程序,post 和get方法测试

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。...对于任何涉及到网络通信的项目,理解并掌握GET和POST方法都是至关重要的。

    HTTP POST和Get模拟提交工具

    本文将深入探讨HTTP中的两种主要请求方法:POST和GET,以及如何使用模拟提交工具进行操作。 首先,GET和POST是HTTP协议中最基础的两种请求方法。GET方法常用于获取资源,它的请求参数通常会附加到URL后面,对数据量...

    post和get方法比较

    在HTTP协议中,GET和POST方法是两种主要的请求方式,它们在数据传输过程中有着显著的区别,主要用于Web应用中向服务器发送数据。 首先,GET方法是通过URL来传递用户的数据。用户在表单中填写的信息会被编码成键值对...

    get、post登录

    总的来说,理解GET和POST方法对于任何Web开发者来说都是至关重要的,它们是构建交互式Web应用程序的基础。通过掌握这两种方法,你可以更好地设计和实现登录和其他数据提交功能,确保用户数据的安全性和交互的效率。

    api实现http请求,支持post和get方法

    在实现HTTP POST和GET方法时,POST用于向服务器提交数据,GET则用于从服务器获取数据。POST方法常用于表单提交,GET方法常用于从指定URL获取资源。 在使用WinINet API进行HTTP请求时,首先需要调用InternetOpen初始...

    基于Labview的HTTP的GET与POST请求示例

    ... web 浏览器可能是客户端,而计算机上的网络应用程序也可能...在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据

    深入理解get与post方法的差别

    与GET方法相比,POST方法在数据传输和处理上提供了更多的灵活性和安全性: 1. **数据传输方式**:POST方法将数据放在HTTP请求的实体主体中,而不是URL中,这意味着数据不会暴露在URL中,增加了数据的安全性。 2. *...

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...

    Web应用安全:HTTP协议GET和POST的使用区别文本.docx

    GET和POST是HTTP协议中两种最常用的请求方法,它们各有特点,适用于不同的场景。 GET方法是HTTP中最常用的方法,主要用于获取资源信息。它是安全的,意味着执行GET请求不会改变服务器上的资源状态,只是单纯地获取...

    post和get提交乱码处理

    本文将深入探讨如何处理POST和GET提交时的乱码问题,以确保网页显示正常,避免出现中文或者其他非ASCII字符的乱码现象。 首先,我们要理解POST和GET的区别。POST请求通常用于向服务器发送大量数据或修改服务器资源...

    jsp中post和get传输方式的区别

    例如,在进行用户登录或敏感信息的提交时,应优先考虑使用POST方法以提高安全性;而在查询数据或获取资源时,则可以选择GET方法以简化操作流程。正确理解和运用这两种方法,能够帮助开发者构建出既高效又安全的Web...

    PHP GET 和 POST 的区别

    当我们谈论PHP中的GET和POST方法时,这是HTTP协议中两种主要的数据提交方式,它们各自有着不同的特性和用途。 **1. GET方法** GET是HTTP请求中最基本的方式,用于向服务器请求资源。当用户在浏览器地址栏输入URL或...

Global site tag (gtag.js) - Google Analytics