HTTP協議對URI長度,POST數據長度及COOKIE長度限制說明


  • 1. URL長度限制
  • 2. Post數據的長度限制
  • 3. Cookie的長度限制

1. URL長度限制

 

在Http1.1協議中並沒有提出針對URL的長度進行限制,RFC協議里面是這樣描述的,HTTP協議並不對URI的長度做任何的限制,服務器端 必須能夠處理任何它們所提供服務多能接受的URI,並且能夠處理無限長度的URI,如果服務器不能處理過長的URI,那么應該返回414狀態碼。

 

雖然Http協議規定了,但是Web服務器瀏覽器對URI都有自己的長度限制。

 

服務器的限制:我接觸的最多的服務器類型就是Nginx和Tomcat,對於url的長度限制,它們都是通過控制http請求頭的長度來進行限制 的,nginx的配置參數為large_client_header_buffers,tomcat的請求配置參數為 maxHttpHeaderSize,都是可以自己去進行設置。

 

瀏覽器的限制:每種瀏覽器也會對url的長度有所限制,下面是幾種常見瀏覽器的url長度限制:(單位:字符)

 

  • IE : 2803

  • Firefox:65536

  • Chrome:8182

  • Safari:80000

  • Opera:190000

 

對於get請求,在url的長度限制范圍之內,請求的參數個數沒有限制。

 

2. Post數據的長度限制

 

Post數據的長度限制與url長度限制類似,也是在Http協議中沒有規定長度限制,長度限制可以在服務器端配置最大http請求頭長度的方式來實現。

 

3. Cookie的長度限制

 

Cookie的長度限制分這么幾個方面來總結。

 

(1) 瀏覽器所允許的每個域下的最大cookie數目,沒有去自己測試,從網上找到的資料大概是這么個情況

 

  • IE :原先為20個,后來升級為50個

  • Firefox: 50個

  • Opera:30個

  • Chrome:180個

  • Safari:無限制

 

當Cookie數超過限制數時瀏覽器的行為:IE和Opera會采用LRU算法將老的不常使用的Cookie清除掉,Firefox的行為是隨機踢出某些Cookie的值。當然無論怎樣的策略,還是盡量不要讓Cookie數目超過瀏覽器所允許的范圍。

 

(2) 瀏覽器所允許的每個Cookie的最大長度

 

  • Firefox和Safari:4079字節

  • Opera:4096字節

  • IE:4095字節

 

(3) 服務器中Http請求頭長度的限制。Cookie會被附在每次http請求頭中傳遞給服務器,因此還會受到服務器請求頭長度的影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM