`
- 浏览:
79904 次
- 性别:
- 来自:
信阳
-
众所周知的http请求有两种:
get与post:
这两种请求的区别就是传参的参数放的位置不同,一个在Request URL,一个在Request Form Data。
如果是post请求,浏览器会自动将?a=1&b=2转化为a:1 b:2
第一个误区:post提交是安全的,因为他不在url中,所以看不到,但是如果使用IE8、chrome、fireFox,打开deBug,一样可以在Form Data中找到,并且还是键值对),如果硬要说安全,那就是url会被记录在web容器的日志中,而get是带参数的。如果日志服务器被黑了,这些参数就泄露了。
第二个误区:get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。这话半对半错,因为
1)URL不存在参数上限的说法。该问题实际是IE对URL有长度限制的问题(当然,fireFox和chrome也有提示,但是并没有阻止,没仔细研究)
2)HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(http://support.microsoft.com/kb/q208427/)。对于其他浏览器,如Netscape等,理论上没有长度限制,其限制取决于操作系统的支持(操作系统的支持很重要,因为XP和WIN7都支持大URL,如果你的服务器是XP和WIN7系统,那么只要将Tomcat和Jetty(我使用的是这两种服务器)的HeaderBufferSize修改大一些,那么URL就能传大参数,但是Linux就悲剧了,会提示头文件过大)。因此我用血的教训告诉大家,最好不要用get提交大数据,服务器换了操作系统就OVER了。
第三个误区:URL长度限制是get提交的的长度限制。值注意这个限制是整个URL长度,而不仅仅是你的参数值数据长度(整个URL包括post提交所在的Form Data区)。
理论上post请求是没有长度限制的,他取决于服务器的配置,处理能力。
弄清楚运行环境的默认设定值有助于你的设计及对出现的问题做快速的解决。
当然,如果web2.0的系统。post提交的大小不用去考虑。
说了这么多,几乎都是说get的坏处,有以下几点好处:
一、get设计的初衷就是向服务器请求数据,而post才是向服务器请求数据。
二、表单处理中的GET方法有一个POST方法不具备的很大的优点:它创建了一个真正新的、完全不同的URL查询字符串。这样,用户现在可以把这一页记作书签。
三、每个GET提交被记录在WEB服务器日志中,数据集也被包括在内
如果表单中有附件,IIS6的限制是6M
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
java实现调用httpclient接口的类和方法,包括了get和post传参方式,简单易懂
介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...
超文本传输协议(HTTP)的...两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据
详细介绍了HTTP中Get与Post的区别与联系。
本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下: Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码: 代码如下:package webserver import...
用Python和TCP sockets手写了一个可以接收HEAD、GET和POST等request message的简单的 HTTP web服务器。
android使用http进行get与post请求的很好的案例!
用java实现带参数发送post请求,以body方式传参的get请求,以pathValue方式传参的get请求
get中文传参(解码) new String()
http协议get与post请求方式的区别
1.一个简单的关于 HTTP GET,POST的简单实例 第一个方法是get 第二个是POST
C# http Get/POST请求封装类
封装https/http的get/post使用函数DLL文件,方便使用者调用,有调用示例程序;另外还有两个ansi与Utf8的转换, 调用示例: PostHttpsContext("current.sinaapp.com","/post.php","name=rain&age=12"); 调用示例: ...
get请求和post请求对于日期的传参,详细描述了常见情况以及异常情况,非法传参情况
本资源是一个封装类,采用异步方式解决了Wininet不能设置超时的问题,当前异步采用C++...MFC程序中通过HttpGet和HttpPost方式向WebService发送请求,WebService以Json的方式返回数据,MFC程序解析Json,得到指定数据。
以GET或者POST方式向网页提交参数!我们知道如 果是GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开
C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)。 玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的...
HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符。我们可以这样认为:?一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就...
C++实现HTTP的GET,POST请求及HTTPS的请求
c# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservicec# 运用get/post 和使用webservice