这个问题一直以来似乎是被N多人误解,其实Http Get方法提交的数据大小长度并没有限制,而是IE浏览器本身对地址栏URL长度有最大长度限制:2048个字符。
当您从 WinInet 应用程序到 Web 服务器发送一个长的查询字符串时,查询字符串可能会被截断。
出现此问题是由于中 WinInet,定义 Wininet.h 文件中,如下所示的 URL 的长度限制:
此行为是设计使然。
注意: 因为 Internet Explorer 和 Internet 传输的控制也使用 WinInet,可能会出现相同的问题。
若要解决此问题,使用 HTTP POST 方法。
http://support.microsoft.com/kb/208427/zh-cn
Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs. ‘>以下附上微软官方的一段说明:
Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs. ‘>Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs.
If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.
However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL. ‘>However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL.
RFC 2616, “Hypertext Transfer Protocol — HTTP/1.1,” does not specify any requirement for URL length.
其他文章内容摘要:
最近一直在做Web相关的项目,熟悉Web开发的人都知道,我们经常需要通过URL来传递参数,即所谓的“GET”方法,还有一种是“POST”,两种方法都用的很多。其中,GET方法适合参数数据量比较小的情况,GET方法比较直观,通过URL就能大概知道回传了哪些参数。POST适合向服务器回传大量的数据,没有GET方法直观。以前我大概看过,通过URL回传参数有个长度限制,当时我看的是1024字节,由于以前做的项目,参数较少,基本不可能超过1024,所以我也没有仔细研究过到底是不是1024字节。最近这个项目,由于参数较多,已经超过1024了,显然我要考虑URL能够接收的最大长度了,在网上搜了一下,得到了准确答案:HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。[参考http://support.microsoft.com/kb/q208427/]。我这就放心,2083字节应该是够用了,呵呵。至于POST方法,可以参考如下这篇文章的介绍。
问题
|
原因
|
分析
|
备注
|
CSV处理时,如果处理的主题数过多,发生URL参数上限的错误; | 可变长度的参数通过URL方式传递,会造成这种潜在的错误发生。 | 1、属于2次发生问题,开发方面没有及时通过checklist等方式向组员传达相关注意事项; 2、测试时没有作大批量数据的测试; |
1、作为经验添加至CheckList中,加强组内共享、检查的效果; 2、加强测试点是否完备的检查,重点关注对开发方面共性问题的测试; |
通过对模块原有GUI状况确认,进行CSV输出时,输出结果很大的场合,CSV文件的内容不能输出。 | 没有考虑到POST数据量存在128K的大小限制。 | 这属于新问题,以前从未遇见过,也没有进行过大规模的数据量测试 | 已将此类检查列出CheckList中 |