我正在创建一些到HTTP服务器的暂停连接(彗星,反向ajax等).它工作正常,但我看到浏览器只允许两个同时挂起到给定域的连接.因此,如果用户在浏览器的Tab1中查看我的网站,那么也尝试在Tab2中加载它们,他们已经用尽了两个允许的连接到我的网站.
我想我可以做一些通配域的东西,我有我的http服务器解析我的网站的任何地址,如:
*.example.com/webapp -> 192.0.2.1 (the actual ip of my server)
Run Code Online (Sandbox Code Playgroud)
所以:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
Run Code Online (Sandbox Code Playgroud)
所有仍然指向(www.example.com/webapp)但浏览器认为它们是不同的域,所以我没有遇到2连接限制.这是真的?
即使这是真的 - 所有域中每个浏览器的活动连接数是否有限制?假设我使用上面的方案 - 例如,Firefox在任何给定时间只允许24个并行连接吗?就像是:
1) a.example.com/webapp
2) www.download.example/hugefile.zip
3) b.example.com/webapp
4) c.example.com/webapp
...
24) x.example.com/webapp
25) // Error - all 24 possible connections currently in use!
Run Code Online (Sandbox Code Playgroud)
我刚刚选择了24个连接/ Firefox作为示例.
html web-applications http persistent-connection web-performance
资源的HTTP请求是随机的 - 大约1-5%的时间(每个资源,而不是每页加载) - 需要花费很长时间才能传送到浏览器(约20秒),甚至不会无限期地挂起.(服务器详细信息列在底部的列表中).
由于JavaScript资源挂在<head>标记内,因此导致任何页面的每5个请求似乎挂起.
资源是css,js和小图像文件,由apache直接提供(没有脚本语言),尽管页面加载(涉及PHP或Rails)也很少挂起,与其他任何资源的机会相同(1-5%的时间) ,所以这似乎是一个与Apache Request相关的问题.
附加信息:
server-status按照预期检查了闲置的工人,我仍有98%的闲置工人.虽然这可能是相关的,因为挂钩适用于FastCGI不提供的静态资源(资源是静态的).什么可能导致这些挂起,我怎么能解决这个问题?