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

最大 URL 长度是 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;
}

其他回答

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

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

根据 HTTP 规格,没有限制一个 URL 的长度. 保持您的 URL 低于 2048 个字符; 这将确保 URL 工作在所有客户端和服务器配置. 此外,搜索引擎如 URL 保持低于大约 2000 个字符。

在 UI Jakob Nielsen 推荐的 URL 中:

网页的社交界面依赖于电子邮件,当用户想要互相推荐网页时,电子邮件是用户进入新网站的第二最常见方式(搜索引擎是最常见的):确保您的网站上的所有 URL 长达 78 个字符,以便它们不会穿过一条线路。

这不是最大的,但如果你想分享你的URL,我会认为这是一个实用的最大。

限制请求线指令设置一个URL的最大长度. 默认情况下,它设置为8190,这给了你很多空间. 但是,其他服务器和一些浏览器,限制长度更多。

由于所有参数都在URL线上通过,隐藏的字段密码中的项目也将在URL上显示,当然,手机也不应该用于真正的安全措施,最好考虑到化妆品安全。