2013-03-23 44 views
0

HTTP是否限制起始線(請求線或狀態線)的長度?HTTP起始線的最大長度

如果是這樣,HTTP服務器在接收到請求行長度超過最大長度的HTTP請求時應該響應哪個狀態碼?

回答

2

從THE HTTP 1.1 RFC(2616)引用,

Request-Line中開始的方法的令牌,隨後的Request-URI和協議版本,並用CRLF結束。元素由SP字符分隔。除最後的CRLF序列外,不允許使用CR或LF。

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

這不指定的長度的限制。

請求URI本身可能很長,和RFC還表示有關:

HTTP協議不放置任何先驗限制上的URI的長度。服務器必須能夠處理它們所服務的任何資源的URI,並且如果它們提供可以生成這種URI的基於GET的表單,則應該能夠處理無限長的URI。如果一個URI長於服務器可以處理的長度(見10.4.15節),服務器應該返回414(請求URI過長)狀態。

因此,Request-URI存在「太長」的狀態,但這意味着「該服務器處理的時間太長」而不是「比規範允許的時間更長」。

+0

414看起來只適合我的情況。感謝您對基於規格的詳細解釋! – npcode 2013-03-24 11:58:20