`
xinyangwjb
  • 浏览: 81790 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

http传参get与post的误区与总结

 
阅读更多
众所周知的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
分享到:
评论

相关推荐

    java http 接口调用 的get和post传参方法

    java实现调用httpclient接口的类和方法,包括了get和post传参方式,简单易懂

    HTTP GET/POST传递参数

    介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...

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

    超文本传输协议(HTTP)的...两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据

    HttpUtils Java get post 工具类

    HttpPost httpPost = new HttpPost(url); httpPost.setEntity(httpEntity); CloseableHttpResponse response = httpClient.execute(httpPost); try { // 处理响应 // ... } finally { response.close(); }...

    Python实现简单的HTTP服务器(GET/POST)

    本文将深入探讨如何使用Python实现一个简单的HTTP服务器,支持GET和POST请求。通过理解这个过程,你可以更好地理解网络通信的基本原理,以及Python在网络编程中的应用。 首先,让我们了解HTTP(超文本传输协议)的...

    Go语言服务器开发实现最简单HTTP的GET与POST接口

    本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下: Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码: 代码如下:package webserver    import...

    http协议get与post的区别

    在深入探讨HTTP协议中GET与POST请求方法的区别之前,我们首先需要理解HTTP(HyperText Transfer Protocol)的基础概念。HTTP是一种应用层协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它允许数据在...

    C#实现http协议GET、POST请求

    C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求

    HttpTest Get与Post示例

    一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,结果是一样的。参数通过URL传递,显示在地址栏中,一般对数据量有限制,通常不超过2KB。 2. POST:常用于提交数据,可以...

    GET与POST用法

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

    service_java接口远程调用_get、post、带参数远程调用_

    首先,我们要了解HTTP协议中的GET和POST请求。GET请求通常用于获取资源,其参数包含在URL中;而POST请求常用于提交数据,参数位于请求体中。在Java中,我们可以使用HttpURLConnection或者HttpClient库来实现这些操作...

    VBS的函数集-读写二进制文件,UTF8文件,HTTP GET和POST

    * 使用GetHttp函数和PostHttp函数来实现HTTP请求和响应处理 * 使用Base64encode函数来实现Base64编码和解码 * 使用WriteFileUTF8函数来实现UTF-8编码的文件写入操作 本资源提供了一系列实用的函数和知识点,帮助...

    Go语言中的gin框架之GET/POST请求参数接收传值(五)

    在Go语言中,Gin框架是一个...总结,Gin框架在处理GET和POST请求参数时提供了多种方法,包括从URL查询字符串、JSON请求体以及Form数据中获取参数。这使得Gin成为构建Web服务的强大工具,特别是在Go语言的生态系统中。

    C#实现HTTP GET和POST 样例代码

    总结来说,理解并能够熟练使用C#实现HTTP GET和POST请求是每个.NET开发者必备的技能。通过`HttpClient`类,你可以轻松地与各种Web服务进行交互,无论是获取数据还是提交信息。实践这些示例代码,结合`HTTP_Demo`中的...

    C# http Get/POST请求封装类

    GET和POST是HTTP协议中最常见的两种请求方法,分别用于获取资源和提交数据。本文将详细讨论如何在C#中封装一个用于执行HTTP GET和POST请求的类,以及`HttpHelper.cs`文件中的关键实现。 首先,了解GET和POST的基本...

    get与post实例

    总结,GET和POST是HTTP请求的重要部分,理解它们的工作原理和使用方法对于Web开发至关重要。在VB中,我们可以使用XMLHttpRequest对象轻松实现GET和POST请求,从而与服务器进行数据交互。遇到DLL丢失问题时,应及时...

    httppost和httpget需要的jar包

    1. `httpclient.jar`:这是HttpClient的主要库,提供了HTTP请求和响应处理的类和接口,包括`HttpClient`、`HttpGet`和`HttpPost`等。 2. `httpcore.jar`:这是HttpClient的核心库,包含了网络通信的基本组件,如...

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

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

    Ajax中get和post区别

    "Ajax中Get和Post请求的区别" Ajax作为异步JavaScript和XML的简写,是一种创建交互式网页的技术。其中,Get和Post是两种常用的HTTP请求方法,尽管它们都是用于将数据从客户端发送到服务器端,但是它们之间存在着很...

Global site tag (gtag.js) - Google Analytics