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

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


当前回答

似乎Chrome至少已经提高了这个限制,我把2万个字符插入了书架上,它拿走了。

其他回答

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

我有 SharePoint 2007, 2010 的经验,在 SharePoint 中,您可以从服务器侧创建的 URL 长度的限制,所以它主要取决于 1) 客户端(浏览器、版本和操作系统) 和 2) 服务器技术、 IIS、Apache 等。

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

为什么Internet Explorer仅限于2K,而IIS则限于16K?我不认为有意义。

所以我想开始一个关于Ajax要求URL大小限制的实验。

我设置了我的Tomcat HTTP连接器的maxHttpHeaderSize="1048576". 并准备了一个非常长的URL。

然后我发送一个请求与长的URL如下:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

jQuery 报告完成. Tomcat 报告所要求的 URL 是 1048015 位元. 它是用 Chrome 50 和 Internet Explorer 11 测试的。

因此,网页浏览器不会故意在发送 Ajax 请求时破坏或限制您的 URL。

WWW FAQs:什么是URL的最大长度?有自己的答案,基于实验测试和研究. 简短的答案是,超过2048个字符使Internet Explorer不快乐,因此这是你应该使用的限制。