Http get请求中的参数可以是多长时间?

Http get请求中的参数可以是多长时间?,http,url,rest,get,web-standards,Http,Url,Rest,Get,Web Standards,我目前正在编写一个API,通过get parameters获取传递的数据,因此我想知道URL或参数值的总长度是否受到最佳实践或协议的限制。没有官方限制,因此取决于不同的浏览器。基本上,2K是跨浏览器方式中最可靠的,但是如果你放弃对IE8及以下版本的支持,你可以得到64K 虽然我觉得我需要质疑你是否需要知道这一点,但任何事情都可以说。。最好通过POST请求而不是GET来处理100个字符。只需添加规范引用。。。根据第3.2.1节: HTTP协议没有对数据长度设置任何先验限制 URI。服务器必须能够处

我目前正在编写一个API,通过get parameters获取传递的数据,因此我想知道URL或参数值的总长度是否受到最佳实践或协议的限制。

没有官方限制,因此取决于不同的浏览器。

基本上,2K是跨浏览器方式中最可靠的,但是如果你放弃对IE8及以下版本的支持,你可以得到64K


虽然我觉得我需要质疑你是否需要知道这一点,但任何事情都可以说。。最好通过POST请求而不是GET来处理100个字符。

只需添加规范引用。。。根据第3.2.1节:

HTTP协议没有对数据长度设置任何先验限制 URI。服务器必须能够处理其使用的任何资源的URI 服务,并且应该能够处理无限长的URI,如果它们 提供可生成此类URI的基于GET的表单。服务器 如果URI较长,则应返回414(请求URI过长)状态 服务器无法处理(见第10.4.15节)


我引用你的链接“非常长的URL通常是错误的。超过2000个字符的URL在最流行的web浏览器中不起作用。”谢谢你的快速回复!我的观点是,但是长URL是代码气味的标志。这本身不是一个问题,但通常是一个更基本问题的症状。但是,如果您尝试使用RESTful,如果POST没有更改服务器上的资源,则不应执行POST。
Note: Servers ought to be cautious about depending on URI lengths
  above 255 bytes, because some older client or proxy
  implementations might not properly support these lengths.