时间:2021-05-26
原因是传说中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:///kb/4xx_HTTP_status_codes.html)
由此可见,Server端对于URL的长度是有限制的,那么对于GET方法可以传输的数据也是有限制的。只是这个限制可能根据服务器的处理能力而定,或者在哪里哪里配置,就不是很清楚了。(俺又开始瞎猜,这貌似不是什么好习惯的说)。
下面开始瞎掰:
其实这是可以理解的,URL长度不可能没有限制的,Http协议毕竟是UDP的,而一个UDP包毕竟是有大小限制的。那么POST为什么就能传递大批量数据呢?在apache module里面尝试了读取post数据之前,还真没有什么深刻的理解。只不过用一个“流”字打法之而已。实际上,POST数据解析的时候是分块来读取的,如果从UDP的角度来理解的话,就可是分成好多个UDP包传过来,一个一个读出来就好了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
url长度没有限制。 在http协议中并没有对url长度作出限制,url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样
最近在做一个功能需要弹窗,但是不能用get方式,因为get方式对url的长度有限制,所以必须用post,总结了两个方法1.复制代码代码如下:var$form1=
微信群拉人有限制吗,突然消息提示添加不了好友入群咋回事?这个可能是跟微信群拉人限制有关,微信群拉人有限制吗?微信拉人入群的限制,官方是有温馨提示的。切记频繁
当构建一个由同轴细缆连接的总线以太网时,其网段长度是有限制的,最长不要超过185米,这一限制来自信号有限的电磁波能量(因为信号在通信介质上传输时会不断地衰减)。
前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度。数据库的长度是按照字节来计算的,而且不同的编码格式