两个相关问题:
允许网页打开的最大并发文件数是多少(例如图像,css文件等)?我假设这个值在不同的浏览器中是不同的(可能是每种文件类型)。例如,我很确定javascript文件一次只能加载一个(对吧?)。
有没有办法可以使用javascript来查询这些信息?
答案 0 :(得分:6)
对于Internet Explorer,请参阅this MSDN article。基本上,除非用户编辑了注册表或运行“Internet加速”程序,否则如果使用IE7或更早版本,它们将最多具有两个连接。 IE8试图了解它,并且最多可以创建6个并发连接,具体取决于服务器和Internet连接类型。在JavaScript中,在IE8上,您可以查询属性 window.maxConnectionsPerServer 。
对于Firefox,FF2及更早版本的默认值为2,FF3的默认值为6。见Mozilla documentation。无论如何我都不知道从FF中的JavaScript中检索这个值。
除了禁止IP之外,大多数HTTP服务器几乎没有能力限制来自单个主机的连接数。一般来说,这不是一个好主意,因为许多用户都在代理或NAT路由器后面,这将允许多个连接来自相同的IP地址。
在客户端,您可以通过从多个域请求资源来人为增加此金额。您可以设置www1,www2等别名,这些别名都指向您的同一个Web服务器。然后在静态内容被拉出的地方混淆。由于额外的DNS解析,这将首次产生小额开销。
答案 1 :(得分:5)
绕过每个服务器限制的X连接的一个有趣方法是将脚本和图像等静态资源映射到自己的域... img.foo.com或js.foo.com。
我只读过这个 - 实际上没有尝试或测试过。如果这不起作用,请告诉我。
答案 2 :(得分:1)
答案 3 :(得分:1)
限制通常是Web服务器。 Web服务器通常只允许每个用户进行两次并发下载。
像ASP.NET这样的活动脚本引擎每个用户一次只能执行一个请求。脚本引擎不会处理静态文件的请求,因此在获取aspx文件时仍可以获取图像。
页面通常包含来自不同服务器的内容,例如流量测量脚本等。由于每个服务器的下载限制通常可以从每个服务器一次下载两个文件。
由于这是服务器限制,您无法使用javascript找到有关它的任何信息。
答案 4 :(得分:0)
我至少在Firefox中知道,这个值是可配置的(network.http.max-connections
,network.http.max-connections-per-server
和network.http.pipelining.maxrequests
),所以我怀疑你会得到一个明确的答案。但是,默认值为4。
你想要完成什么?
答案 5 :(得分:0)
HTTP中没有任何内容限制会话数。
但是,FF中有一个配置项,它专门设置允许的总会话数和单个服务器的会话数。其他浏览器也可能具有此功能。
此外,服务器可以限制完全来自每个客户端IP地址的会话数。
所以正确的答案是:
1 /会话数限制为客户端(浏览器)和服务器的最小值。
2 /因此,没有可靠的方法在JavaScript中查询它。