我有一个ASP.Net 3.5平台和带有所有更新的Windows 2003服务器。
.Net有一个限制,它无法处理超过260 characters。此外,如果你在网上查找它,你会发现IE 6无法正常工作,如果没有修补超过100个字符。
我希望在最大数量的浏览器上支持重写路径模块,所以我正在寻找可以创建详细URL的可接受限制。
答案 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)
答案 2 :(得分:3)
答案 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个字符。