URL长度的最佳限制是多少? 100,200 +

时间:2008-10-07 16:17:53

标签: asp.net

我有一个ASP.Net 3.5平台和带有所有更新的Windows 2003服务器。

.Net有一个限制,它无法处理超过260 characters。此外,如果你在网上查找它,你会发现IE 6无法正常工作,如果没有修补超过100个字符。

我希望在最大数量的浏览器上支持重写路径模块,所以我正在寻找可以创建详细URL的可接受限制。

11 个答案:

答案 0 :(得分:5)

Url是路径+查询字符串,链接的文章仅讨论限制路径。因此,如果您使用的是asp.net,请不要超过260个字符的路径。少于260个将始终有效,并且asp.net在长串查询时没有麻烦。

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

通常问题出在浏览器上。很久以前我做了测试并回忆起许多浏览器都支持4k网址,除了IE限制为2083,所以出于所有实际目的,将其限制为2083.我不知道IE7和8是否有限制,但如果你要获得广泛的兼容性,你需要寻求最低的共同点。

答案 1 :(得分:3)

W3C没有规定长度限制,但请查看实际限制

http://www.boutell.com/newfaq/misc/urllength.html

从中选择你自己的限制。

答案 2 :(得分:3)

IIS中的默认限制为16,384个字符

但是IE doesn't support more than 2083

link

的更多信息

答案 3 :(得分:2)

This article给出了各种浏览器的限制。似乎IE将URL限制为2083个字符,因此如果您的任何用户在IE上,您应该保持在此范围内。

答案 4 :(得分:2)

为您的应用定义“最佳”。

HTTP标准有一个限制(取决于您的应用程序):

  

HTTP协议不会放置任何内容   URI长度的先验限制。   服务器必须能够处理URI   他们所服务的任何资源,并且应该   能够处理无界的URI   长度,如果他们提供基于GET的表格   可以生成这样的URI。一个   服务器应该返回414(Request-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,因为你没有足够的信息来定义问题。

- 亚当

答案 5 :(得分:2)

短; - )

问题是每个Web服务器和每个浏览器都有自己的想法,最长时间。 HTTP协议的RFC没有给出最大长度。 IE将获取限制为2083个字符,路径本身最多可以包含2,048个字符。但是,这个限制并不普遍。 Firefox声称支持至少65,536,但有些人证实在某些平台上甚至可以使用100,000个字符。 Safari超过80,000(经过测试)。另一方面,Apache服务器的限制为4,000。微软Internet Information Server有一个是16,384(但它是可配置的)。

我的建议是在任何情况下保持低于2,000个字符。这不能保证适用于世界上的每个浏览器(特别是不是旧的浏览器),但它适用于所有现代浏览器。此外,我建议尽可能使用POST(例如,避免使用GET进行FORM提交 - 如果某些用户想通过GET模拟FORM提交,请确保您的应用程序通过POST或GET支持所需的参数,但是当您提交页面时你自己通过一个按钮或JS,更喜欢POST over GET。)

答案 6 :(得分:1)

我认为RFC表示4096个字符,但IE截断到2083个字符。保持安全。

实际上,较短的网址更友好。

答案 7 :(得分:0)

需要更多信息,但对于正常情况,我会说尝试将其保持在150以下。如果只是纯粹的修道者,我讨厌有人给我发送GI-NORMOUS链接......

您是否通过查询字符串传递值?我认为这就是你问的原因,对吗?

答案 8 :(得分:0)

无论如何,什么是“最佳”?

GET请求的长度可以是几个KB,因此这完全是主观的。

我会说 - 保持在最大化的1024x768窗口的地址栏长度内,以方便用户使用。

答案 9 :(得分:0)

如果你想让人们记住这个网址,我就不会超过60个。如果可能,请使用文字,因为它更容易记住“www.example.com/this-is-the-url”比“www.example.com/179264”。如果您正在尝试将页面编入索引,那么您可能会更多。蜘蛛也在标题中查找单词,如果URL看起来可读,有些人可能更有可能点击链接。

答案 10 :(得分:0)

当你说“Optimum”时,我认为“易于访问用户”,在这种情况下,我认为URL越短越好。在这种情况下,我认为最多20-30个字符。