【发布时间】:2018-06-18 10:39:02
【问题描述】:
我正在创建一些与 HTTP 服务器(彗星、反向 AJAX 等)的暂停连接。它工作正常,但我看到浏览器只允许同时挂起两个到给定域的连接。因此,如果用户在其浏览器的 Tab1 中查看我的网站,然后还尝试在 Tab2 中加载它,则他们已经用完了与我网站的两个允许连接。
我想我可以做一些通配符域的事情,让我的 HTTP 服务器将任何地址解析到我的站点,例如:
*.example.com/webapp -> 192.0.2.1 (the actual ip of my server)
所以:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
all 仍然指向 (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!
我刚刚选择了 24 个连接/Firefox 作为示例。
【问题讨论】:
-
是的,它被称为domain sharding,这是 HTTP/2 时代过时的策略
-
这里的解决方案是为您的所有标签更新只暂停一个连接。当打开一个选项卡时,该选项卡的更新请求被发送到服务器,并且该选项卡在主挂起连接上侦听任何更新,并且只选择它感兴趣的那些。我知道这不是你的'在问,但认为它可能对某人有用。 :-)
标签: html http web-applications persistent-connection web-performance