get请求中的参数可以有多长?

Dom*_*nik 11 rest url get http web-standards

我目前正在编写一个通过get参数传递数据的API,所以我想知道URL或参数值的总长度是在最佳实践中还是通过协议限制的.

Bli*_*ndy 13

http://www.boutell.com/newfaq/misc/urllength.html

基本上,2K是您可以依赖的跨浏览器方式,但如果您放弃对IE 8及以下版本的支持,您可以使用64K.

虽然我觉得我需要质疑你需要知道这一点,但任何超过100个字符最好通过POST请求而不是GET来处理.

  • 但是,如果您尝试使用RESTful,则如果不更改服务器上的资源,则不应执行POST. (17认同)

Jar*_*ger 5

只是为了在HTTP 1.1 RFC中添加规范引用... ,在3.2.1节中:

HTTP协议不对URI的长度设置任何先验限制.服务器必须能够处理它们所服务的任何资源的URI,并且如果它们提供可以生成这种URI的基于GET的表单,它应该能够处理无限长度的URI.如果URI长于服务器可以处理的长度,服务器应该返回414(Request-URI Too Long)状态(参见10.4.15节).

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.
Run Code Online (Sandbox Code Playgroud)