GET与POST传递数据的长度分析

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。GET – 从指定的资源请求数据,POST – 向指定的资源提交要被处理的数据。本篇文章我们就来分析一下 GET 与 POST 传递数据的最大长度能够达到多少。

各种 web 开发语言中,各个页面之间基本都会进行数据的传递,web 开发里面比较常用的数据传递方式有 get post,一直以来我都只知道 get 传递的数据量要比 post 传递的数据量要少,所以传递大数据量还是要用 post,但是 get post 这两种方式最大能传递多少数据呢?一直没搞清楚。

下面就说说 GET 与 POST 传递数据的最大长度能够达到多少吧。

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 这个值。这就很明白的说明了这个问题了。

通过以上文章的简单介绍,我们就很清楚了 GET 与 POST 传递数据的最大长度能够达到多少,希望能帮助到大家。

3 条评论

发表评论

*