HTTP是否限制了起始行(请求行或状态行)的长度?
如果是,那么当收到请求行长于最大长度的HTTP请求时,哪个状态码HTTP Server应该响应?
答案 0 :(得分:2)
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存在“太长”状态,但这意味着“此服务器处理的时间太长”而不是“超出规范允许的时间”。