2008-10-07 75 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个字符。