URL 长度有限制吗?
众所周知,传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法。原因是什么呢?
原因是传说GET方法是通过URL来传递,而URL的长度是受限的,而POST方法采用流的方式,理论上可以传递的容量是没有限制的。
现在来看这个描述:“URL的长度是受限的”,但HTTP协议规范也没有对URL长度进行限制,具体是在哪里受限制呢?browser端还是server端呢?
网上现在google出来的结果都是说url的长度实际上是受到browser的限制,如IE限定url长度为2083字节,opera 是4050, Netscape 是8192,等等。既然是browser对URL长度的限制,那么不管是GET方法还是POST方法都存在这个限制。注意这个限制是整个URL长度,而不仅仅是你的参数值数据长度。那么对于server端,实验表明Server端对于URL的长度也是有限制的。
结论:
1)了解应用程序所在的环境,如Web应用的浏览器、服务器环境,了解其特定的参数限制情况。
2)提交复杂数据尽量使用POST方法。注意FORM表单不写method属性时默认是使用GET方法的。
参考资料:
http://www.jb51.net/article/18858.htm
http://npsajax.iteye.com/blog/200051
URL 长度有限制吗?的更多相关文章
- HTTP中的URL长度限制(资料整理)
HTTP中的URL长度限制 首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori l ...
- ASP.NET MVC, Url长度过长问题解决,404.15问题
最近在处理一个问题的时候,发现他们存在一个大量数据放在URL中传递的过程,当数据达到一定数量的时候就会报出404.15问题. 运行环境是在IIS8,经过查询之后发现,URL此时最大长度为2048,肯定 ...
- 浏览器和服务器 对http请求(post get) url长度限制
1. GET URL长度限制 在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端 必须能够处理任何它们所提供服 ...
- URL长度过长的问题
最近项目中很多跨域的问题,有时候跨域要传递很多参数,甚至有时候要传递整个对象,处理的方法是把对象转换成JSON形式的字符串再传递.此时该JSON字符串就比较长,作为参数附加到URL后面,URL就会变得 ...
- 如何解决请求URL长度超过配置的maxurlLength值问题
当我们批量请求的数据太多时,会出现请求的url长度超过配置maxurllength值的问题(比如一次性操作1000条数据) 1.问题描述: 我在进行批量选择单据进行发送时,出现这个问题(批量500条) ...
- 使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!
一 对于某些环境导出是直接用wiondow.href=url直接导出下载,有些业务需求,如员工档案等字段比较多的时候,全选导出就会引发异常,由于Nginx转发长度限制的问题, 如果运维不愿意改变环境, ...
- HTTP中的URL长度限制
首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori limit on the leng ...
- url长度
今天在测试Email Ticket的时候发现在进行Mark as Read/Unread操作时,请求是通过GET方式进行的.URL中列出了所有参与该操作的Ticket Id.于是,我想起GET请求是有 ...
- js方法encodeURI后,关于get请求url长度的限制测试与总结
(本文仅作个人记录只用比较啰嗦,重点只看红字部分即可) Test.jsp 请求test1.jsp IE11环境下,get请求url最多4096个字节: 请求的是http://localhost:908 ...
随机推荐
- 基于zabbix的Redis、Sentinel、Slave多实例自动发现监控
约定 保证whereis redis-cli 能够正确返回redis-cli程序的路径 保证 redis的配置文件在模板宏{$REDIS_SERVER_CONFIG_PATH}的路径,并且后缀名 为. ...
- UVA 10474 (13.08.04)
Where is the Marble? Raju and Meena love to play with Marbles. They have got a lotof marbles with ...
- go语言之进阶篇成员操作
1.成员操作 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...
- Java主流Web Service框架介绍:CXF和Axis2
CXF和Axis2是目前java平台上最主流的两个框架,虽然两个项目都隶属ASF,但却是基于不同思想和风格实现的,因此也各有所长. CXF:http://cxf.apache.org/ 是由过去的 ...
- Office WORD如何在图片上添加文字
如图所示,在图片格式中选择图片衬于文字下方即可,这样看起来感觉就像在图片上直接加字一样,没有生硬的感觉. 最终效果: Word如何在图片上添加文字Word如何在图片上添加文字Word如何在图片上添加文 ...
- 自定义Lisp透明命令
我们知道在CAD中,如果我们在命令前面加一个单引号,则为透明命令.透明命令就是一个命令还没结束,中间插入另一个命令,然后继续完成前一个命令.插入的命令即透明命令,插入透明命令是为了更方便的完成第一个命 ...
- html5 canvas类库 实例
http://threejs.org/examples/ http://ocanvas.org/demos https://processing.org/examples/rotatexy.html ...
- java如何将毫秒数转为相应的年月日格式
public static void main(String[] args) { Date date = new Date(); Long time = date.getTime(); System. ...
- 关于linux的添加永久静态路由的static-routes方法
一:使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: //添加到主机的路由 # route add –host 192.168.1.11 dev ...
- windows命令行设置IP与DNS
用dos命令修改IP等本地连接属性 平时我们改IP通常都在是窗口界面本地连接直接修改, 那在命令行也可以设置IP地址?当然可以,这里要用到netsh命令 .点击“开始”->“运行”,输入“cmd ...