每个浏览器的URL的最大长度是什么?

最大 URL 长度是 HTTP 规格的一部分吗?


当前回答

ASP.NET 2 和 SQL Server 报告服务 2005 具有 2028 年限制,我发现这是一个艰难的路径,我的动态 URL 发明器不会将某些参数转移到超越这一点的报告。

其他回答

ASP.NET 2 和 SQL Server 报告服务 2005 具有 2028 年限制,我发现这是一个艰难的路径,我的动态 URL 发明器不会将某些参数转移到超越这一点的报告。

实际上没有普遍的最大 URL 长度. 最大长度仅由客户端浏览器选择支持的定义,这在很大程度上有所不同. 2.083 限制仅存在于 Internet Explorer (所有版本高达 7.0). Firefox 和 Safari 的最大长度似乎是无限的,尽管不稳定性发生在 URL 达到约 65,000 个字符。

Sitemaps 协议是网站管理员如何向搜索引擎提供有关其网站页面的信息(谷歌在 Webmaster Tools 中也使用),支持不到 2048 个字符的 URL. 因此,如果您计划使用此功能为搜索引擎优化,请注意。

在 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;
}

Microsoft 支持表示“Internet Explorer 的最大 URL 长度为 2,083 个字符”。

IE 有更长的URL问题,Firefox 似乎在 >4k 屏幕上工作得很好。