2015-04-05 75 views
26

很多人都在問「什麼是最大長度一個的URL可以嗎?」但是據我所見,沒有人會問這個問題:URL路徑中段的安全最大長度應該是多少?

什麼是URL路徑中段的安全最大長度應該是多少?

我覺得這個問題同等重要。

這個問題是一個普遍的問題,旨在支持儘可能多的系統開箱即用。

在C#中,您可以從傳入請求中獲取URL路徑段的列表,其中安裝了安全模塊,這種情況下URL路徑中的段的最大長度是什麼?

我讀過下頁,超過260個字符的URL路徑段可能會導致自定義ASP.NET模塊問題:

在Web瀏覽器,鍵入URL段無論您訪問哪個網站,/是一個通常映射到主頁的URL路徑段。隨着Internet Explorer,Chrome和Firefox成爲流行的瀏覽器,它們支持的URL路徑段長度的最大長度是多少?

我可以從下面的資源,一個URL路徑的最大長度不同,針對不同的瀏覽器和數字有時是相當高看:

但是,這是一個路徑,不是路徑段。

我也知道,當重寫路徑時,基礎文件系統路徑長度起作用,我能看到支持的球形圖在* nix OS中大約有255個字符。

其他考慮因素包括數據庫表中URL路徑段的最大長度。例如,在MySQL中,一個varchar列最多可以包含255個字符,但有沒有這種情況,是否有人在MySQL的表中存儲路徑段,或者是否存儲完整的URL在varchar列中?這是否意味着255個字符對於URL路徑段來說太長了?

是否有任何W3C規範的URL路徑段可以多長時間,因爲我什麼都找不到?

我看過W3C規範上的URI,但我又沒有當場使用的東西:

我很困惑,有什麼一個沒有一套標準URL路徑段應該是長度,所以也許我錯過了一些東西?

我真的在尋找儘可能多的關於不同系統支持的信息,以及什麼被認爲是URL路徑段的安全長度。

+0

可能重複[在不同瀏覽器中URL的最大長度是多少?](https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-在不同瀏覽器中) – 2017-06-07 05:26:54

+1

URL的一部分與URL不同。 – 2017-06-07 08:01:20

+0

對不起,你是對的,我沒有足夠的重視。 – 2017-06-07 08:05:50

回答

29

可能相關的What is the maximum length of a URL in different browsers?

總之

根據HTTP規範,沒有限制到一個URL的長度。保持您的網址低於2048個字符;這將確保這些URL在所有客戶端&服務器配置中工作。此外,像URL這樣的搜索引擎將保持在大約2000個字符以內。

Chrome對URL的限制爲2MB,IE8和9的限制爲2084個字符。因此,所有內容都將您的網址限制在約。 2000個字符。

此外,從可用性的角度來看,用戶不能使用/讀取長URL。

但是,域名有一個最大值。長度爲255個字符。 因此,爲了安全起見,考慮到您的網址存在於1段以外,網址的長度大約爲1745個字符。

+0

段只是網址的一部分。 – 2015-11-16 11:29:23

+0

是的,所以最大。段長度將是最大的。網址長度 - 255(對於域名)。我會更新我的答案。 – 2015-11-16 11:31:26

4

沒有這樣的規格限制。有可能是執行限制,但你不會在規範中找到。

尼特:URI是由IETF定義,而不是W3C,並且當前規範是RFC 3986.

+0

這就是我之後的實施限制列表。 – 2015-11-10 09:43:39

0

的最大的URL長度應不然後2K(只是常見的做法)。段路徑可以有任意大小。域長度不應超過255個字符rfc3986.txt。 限制只存在於實現中。只附加文件名的段只限於特定的(舊的常用)情況。現在幾乎所有請求都通過重寫規則通過一個文件,因此段長度無關緊要。 之後,該段被保存在當今非常大的變量中,所以沒有限制。

相關問題