每个浏览器的URL的最大长度是什么?
最大 URL 长度是 HTTP 规格的一部分吗?
每个浏览器的URL的最大长度是什么?
最大 URL 长度是 HTTP 规格的一部分吗?
当前回答
在 UI Jakob Nielsen 推荐的 URL 中:
网页的社交界面依赖于电子邮件,当用户想要互相推荐网页时,电子邮件是用户进入新网站的第二最常见方式(搜索引擎是最常见的):确保您的网站上的所有 URL 长达 78 个字符,以便它们不会穿过一条线路。
这不是最大的,但如果你想分享你的URL,我会认为这是一个实用的最大。
其他回答
Microsoft 支持表示“Internet Explorer 的最大 URL 长度为 2,083 个字符”。
IE 有更长的URL问题,Firefox 似乎在 >4k 屏幕上工作得很好。
HTTP 1.1 规格说:
HTTP 中的 URI 可以以绝对的形式或与某些已知基础的 URI 相对,取决于它们的使用背景。 两种形式因绝对的 URI 总是以一个序列名称开始而有所区别。 有关 URL 合成和序列的最终信息,请参见“统一资源识别器(URI):通用序列和序列”。
正如 @Brian 提到的那样, HTTP 客户端(例如浏览器)可能有自己的限制,而 HTTP 服务器则会有不同的限制。
在 Apple 平台(iOS/macOS/tvOS/watchOS)上,限制可能是一个 2 GB 长的 URL 格式,如此评论所示,在 Swift 的源代码中:
// 确保 URL 行不太长. // 我们将其限制到 2GB 以使用 NS/CFURL 使用 32 位执行器的背后兼容性,如果((urlStringLength > 0) && (urlStringLength <= INT_MAX) ) {...
在 iOS 上,我已经测试并确认,即使是300MB以上长的URL也被接受。
NSString *path = [@"a:" stringByPaddingToLength:314572800 withString:@"a" startingAtIndex:0];
NSString *js = [NSString stringWithFormat:@"window.location.href = \"%@\";", path];
[self.webView stringByEvaluatingJavaScriptFromString:js];
如果成功,就抓住:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"length: %@", @(request.URL.absoluteString.length));
return YES;
}
实际上没有普遍的最大 URL 长度. 最大长度仅由客户端浏览器选择支持的定义,这在很大程度上有所不同. 2.083 限制仅存在于 Internet Explorer (所有版本高达 7.0). Firefox 和 Safari 的最大长度似乎是无限的,尽管不稳定性发生在 URL 达到约 65,000 个字符。
ASP.NET 2 和 SQL Server 报告服务 2005 具有 2028 年限制,我发现这是一个艰难的路径,我的动态 URL 发明器不会将某些参数转移到超越这一点的报告。