HTTP Start-Line的最大长度

时间:2013-03-23 12:52:48

标签: http

HTTP是否限制了起始行(请求行或状态行)的长度?

如果是,那么当收到请求行长于最大长度的HTTP请求时,哪个状态码HTTP Server应该响应?

1 个答案:

答案 0 :(得分:2)

引自HTTP 1.1 RFC(2616)

  

Request-Line以方法标记开头,后跟Request-URI和协议版本,以CRLF结尾。元素由SP字符分隔。除最终的CRLF序列外,不允许使用CR或LF。

   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF

这并未指定长度限制。

Request-URI本身可能很长,rfc也会说:

  

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

因此,Request-URI存在“太长”状态,但这意味着“此服务器处理的时间太长”而不是“超出规范允许的时间”。