发布网友 发布时间:2022-04-19 12:44
共2个回答
热心网友 时间:2023-07-25 23:06
get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行*。这个*是特定的浏览器及服务器对它的*。IE对URL长度的*是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度*,这个时候其*取决于服务器的操作系统。即如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。
post 理论上讲是没有大小*的,HTTP协议规范也没有进行大小*,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量*,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了。
热心网友 时间:2023-07-25 23:06
get
首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系 了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行*。这个*是特定的浏览器及服务器对它的*。IE对URL长度的*是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度*,其*取决于操作系统的支持。 注意这是*是整个URL长度,而不仅仅是你的参数值数据长度。
【get方式提交数据的大小,http协议并没有硬性*;而是与浏览器及服务器、操作系统有关。第二篇文章里,就有谈到用apache测试,使用get方式,url最长可达8167b。其中跟帖留言中还有谈到代理的因素在里面,可能url太长还没到服务,就已经被代理拒绝掉了。第一篇的留言讨论很能学到东西哦~ 】
post
理论上讲,POST是没有大小*的,HTTP协议规范也没有进行大小*,说“POST数据量存在 80K/100K的大小*”是不准确的,POST数据是没有*的,起*作用的是服务器的处理程序的处理能力。
对于ASP程序,Request对象处理每个表单域时存在100K的数据长度*。但如果使用Request.BinaryRead则没有这个 *。
由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了*。我们还需要注意:
1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域*是100KB。
2).IIS 6.0默认上传文件的最大大小是4MB。
3).IIS 6.0默认最大请求头是16KB。
IIS 6.0之前没有这些*。[见参考资料5]
所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的 IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。