博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Http get方式url参数长度以及大小
阅读量:5825 次
发布时间:2019-06-18

本文共 767 字,大约阅读时间需要 2 分钟。

详见:
众所周知, 传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法。原因是什么呢?
原因是传说中GET方法是通过URL来传递,而URL的长度是受限的,而POST方法采用流的方式,理论上可以传递的容量是没有限制的。
现在来看这个描述:“URL的长度是受限的”,具体是在哪里受限制呢?browser端还是server端呢?网上现在google出来的结果都是说url的长度实际上是受到browser的限制,如IE限定url长度为2083字节,opera 是4050, Netscape 是8192,等等。据说HTTP协议本身对GET方法的长度没有限制。那么,如果不使用浏览器,而是从程序里发送HttpRequest的话,GET发送的长度就可以是无限的么?抱着这样的想法,进行了如下实验: 
在client端,用Java实现,向server端发送HttpRequest,使用GET方法。 
在server端,设计一个apache module,并将strlen(r->args),用ap_rprintf输出,作为response,返回到Java端。 
通过不断增加GET方法传过去的字符串的长度,发现URL长度超过8208字节时,Java抛出IO Exception: Server returned HTTP response code: 414 for URL: ..... 
414 代表哪种错误呢? 
414 - Request-URL Too Long (SEE: http://www.websitepulse.com/kb/4xx_HTTP_status_codes.html) 
由此可见,Server端对于URL的长度是有限制的,那么对于GET方法可以传输的数据也是有限制的。

转载地址:http://amidx.baihongyu.com/

你可能感兴趣的文章
理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称
查看>>
[MFC] CList
查看>>
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
查看>>
c++中sizeof的分析
查看>>
线程间操作无效: 从不是创建控件的线程访问它的解决方法
查看>>
hdu 1236 排名
查看>>
PHP面向对象深入研究之【继承】,减少代码重复
查看>>
RBAC权限管理
查看>>
此博客不再发表对自己私事的看法
查看>>
后台(20)——数据库连接池
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
关于数据分析思路的4点心得
查看>>
Memcached安装与配置
查看>>
美团数据仓库的演进
查看>>
SAP被评为“大数据”预测分析领军企业
查看>>