2008-10-07 74 views
6

我有一個ASP.Net 3.5平臺和Windows 2003服務器的所有更新。什麼是URL長度的最佳限制? 100,200 +

.Net有一個限制,它不能處理超過260 characters。此外,如果你在網上查看它,你會發現如果沒有修補超過100個字符,IE 6將無法工作。

我想要在最大瀏覽器數上支持重寫路徑模塊,所以我正在尋找可以創建詳細URL的可接受限制。

回答

5

Url是路徑+查詢字符串,並且鏈接的文章僅討論限制路徑。因此,如果您使用的是asp.net,請不要超過260個字符的路徑。少於260個將始終工作,並且asp.net沒有冗長querystrings的麻煩。

http://somewhere.com/directory/filename.aspx?id=1234 
              ^^^^^^^- querystring 
        ^^^^^^^^^^^^^^^^^^^^^^^^ -------- path 

通常問題出在瀏覽器上。很久以前,我做了測試並記得許多瀏覽器支持4k url,除了IE將它限制爲2083以外,所有實際用途都將其限制爲2083.我不知道IE7和8是否有限制,但是如果你要達到廣泛的兼容性,你需要去爭取最低的共同點。

0

需要更多信息,但對於正常情況,我會說盡量保持在150以下。如果沒有別的純粹的修道者,我討厭有人給我發送GI-NORMOUS鏈接...

你是否通過查詢字符串傳遞值?我認爲這就是爲什麼你問,對嗎?

2

This article給出了各種瀏覽器施加的限制。看起來IE瀏覽器將URL限制爲2083個字符,因此,如果您的任何用戶使用IE,您應該可以保持該狀態。

1

我認爲RFC 4096個說字符,但IE截斷到2083個字符。保持良好的安全。

實際上,較短的URL更友好。

2

爲您的應用程序定義「最佳」。

HTTP標準具有限制(這取決於應用程序):

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

Note: Servers ought to be cautious about depending on URI 
    lengths above 255 bytes, because some older client or proxy 
    implementations might not properly support these lengths. 

所以,問題是 - 什麼是你的程序的限制,或者你有什麼程序需要執行它的所有功能,最大的資源標識符的大小?

你的程序應該有一個自然的限制。

如果不是這樣,您可以堅持爲16k,因爲您沒有足夠的信息來定義問題。

- 亞當

0

什麼是 「最優」 的呢?

GET請求的長度可能是幾個kB,所以這完全是主觀的。

我會說 - 留在最大化的1024x768窗口的地址欄長度爲用戶友好。

0

如果你想讓人們記住這個URL,我不會超過60個。如果可能的話,請使用單詞,因爲它更容易記住「www.example.com/this-is-the-url 「而不是」www.example.com/179264「。如果您嘗試將網頁編入索引,您可能會做更多。蜘蛛也會在標題中查找單詞,如果URL看起來可讀,則某些人可能更可能點擊該鏈接。

+0

我聽說過這個「蜘蛛在URL中尋找理論」太多次了,但沒有任何證據。對於我在一個曾經工作過的大網站上測試過的東西,沒有任何區別。小心提供一些可以證明它真的被使用的URL? – 2008-10-07 17:02:49

2

短;-)

的問題是,每一個web服務器和每個瀏覽器都有自己的想法,最大有多長。 HTTP協議的RFC沒有給出最大長度。 IE限制爲2083個字符,路徑本身可能最多爲2,048個字符。但是,這個限制並不普遍。火狐聲稱支持至少65,536,但有些人證實,在某些平臺上甚至有10萬個字符可以工作。 Safari超過80,000(測試)。另一方面,Apache服務器的限制爲4000。微軟的互聯網信息服務器有一個16,384(但它是可配置的)。

我的建議是在任何情況下都要保持低於2'000個字符。這不能保證與世界上的每個瀏覽器(特別是不是較老的瀏覽器)一起工作,但它可以適用於所有現代瀏覽器。此外,我建議儘可能使用POST(例如,避免使用GET進行FORM提交 - 如果某些用戶想通過GET模擬FORM提交,請確保您的應用程序通過POST或GET提供所需的參數,但是當您提交頁面時你自己通過一個按鈕或JS,更喜歡通過GET的POST)。

0

當你說「最佳」時,我認爲「容易訪問用戶」,在這種情況下,我認爲URL越短越好。在那種情況下,我會認爲最多20-30個字符。