主页 > 知识库 > URL 长度有限制吗?

URL 长度有限制吗?

热门标签:忻州外呼系统接口对接 湖北稳定外呼系统 嘟声的电销机器人 医院地图标注 语音平台系统 地图标注和图片标注 洛阳便宜外呼系统厂家 电销机器人怎么收费 沧州智能外呼系统收费
原因是传说中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方法可以传输的数据也是有限制的。只是这个限制可能根据服务器的处理能力而定,或者在哪里哪里配置,就不是很清楚了。(俺又开始瞎猜,这貌似不是什么好习惯的说)。

下面开始瞎掰:

其实这是可以理解的,URL长度不可能没有限制的,Http协议毕竟是UDP的,而一个UDP包毕竟是有大小限制的。那么POST为什么就能传递大批量数据呢?在apache module里面尝试了读取post数据之前,还真没有什么深刻的理解。只不过用一个“流”字打法之而已。实际上,POST数据解析的时候是分块来读取的,如果从UDP的角度来理解的话,就可是分成好多个UDP包传过来,一个一个读出来就好了。
您可能感兴趣的文章:
  • js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
  • 关于URL最大长度限制的相关资料查证

标签:内蒙古 日照 96 巴彦淖尔 定州 防城港 山南 宜宾

巨人网络通讯声明:本文标题《URL 长度有限制吗?》,本文关键词  URL,长度,有限制,吗,URL,长度,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《URL 长度有限制吗?》相关的同类信息!
  • 本页收集关于URL 长度有限制吗?的相关信息资讯供网民参考!
  • 推荐文章