mit*_*dir 8 google-chrome google-chrome-devtools http2
我们正在为我们的网站启用H2.在测试过程中,我观察到一些资源似乎是用Http /1.1请求的,而大多数其他资源都是H2.有趣的是,当通过一条路径请求时,相同的资源似乎使用http/1.1,而在另一点似乎使用H2.
请参阅下面Chrome开发者工具的截图,了解相关资源.
此外,使用http/1.1还要求的其他资源也很少.关于为什么会发生这种情况的任何想法?此外,当从http/2切换到http/1.1时,相同的连接似乎可以重复使用,这是否也会导致线路阻塞问题?
任何帮助在这里将不胜感激!
根据您在屏幕截图中提供的有限信息,我无法解释为什么有时使用 HTTP/1.1 而其他时间不使用其他的,因为这不应该发生。
您是否 100% 确定它们都来自同一来源?资源是否可能是从缓存中提供的,它们是否在 HTTP/1.1 下缓存?
另一方面,为什么您在同一页面加载中两次请求相同的源,因为这似乎是错误的?对于更改的数据(例如 JSON 请求)来说足够公平,但不明白为什么您会多次加载 jquery-UI 甚至与您似乎正在做的相同的 css 文件?似乎是一个非常奇怪的用例,至少您应该缓存它以再次使用它。
对于您的第二个问题,在 HTTP/2 下,相同的连接被重用于相同的来源(如果您在具有相同 https 证书的同一 IP 地址上有一个单独的虚拟主机,则在某些用例中这包括相同的效果来源)。这并不会导致线阻断为HTTP / 2协议已经为这种情况和用途多路复用交融请求被专门设计的头部。
然而,这确实改变了请求在开发工具中的显示方式,具体取决于客户端、服务器和带宽。例如,假设您有两个资源的请求,每个资源都需要 5 秒才能下载。在 HTTP/1.1 下你会看到:
例子
Request 1: start 0 seconds, end 5 seconds.
Request 2: start 5 seconds, end 10 seconds.
Total time to download could be calculated as: 5s + 5s = 10s
Overall Page load time would be 10 seconds
Run Code Online (Sandbox Code Playgroud)
在 HTTP/2 下,您可能会看到这一点(假设第一个请求被优先发送回来):
示例 2a
Request 1: start 0 seconds, end 5 seconds.
Request 2: start 0 seconds, end 10 seconds.
Total time **looks** be 5s + 10s = 15s
Overall Page load time would still be 10 seconds
Run Code Online (Sandbox Code Playgroud)
或者,如果您有足够的带宽来同时处理两个请求,并且服务器在比第一个请求晚一秒响应第二个请求,则它可能看起来像这样:
例 2b
Request 1: start 0 seconds, end 5 seconds.
Request 2: start 0 seconds, end 6 seconds.
Total time **looks** be 5s + 6s = 11s
Overall Page load time would be 6 seconds
Run Code Online (Sandbox Code Playgroud)
重点是在 HTTP/2 下“看起来”更慢,如果您尝试对各部分求和,即使总时间与示例 2a 相同,实际上示例 2b 快 4 秒。您无法在 HTTP/1.1 和 HTTP/2 之间比较开发者工具中类似基础上的单个请求。
这与比较多个 HTTP/1.1 请求的方式相同(浏览器通常为每个主机打开 4-8 个连接,而不是只打开一个),除了在 HTTP/2 下打开和管理多个连接没有开销,因为它已融入协议。并且在 HTTP/2 下没有 4-8 的限制,例如通过浏览器和服务器通常会实现一个Apache 默认为 100)。
尽管如此,我仍然认为在客户端和服务器上还有很多优化要做,以充分利用 HTTP/2。互联网还针对 HTTP/1.1 及其工作方式进行了大量优化,因此可能需要取消或至少调整其中的一些内容,以充分利用 HTTP/2。例如,页面加载通常加载 HTML,然后是 CSS,然后是图像,这自然会导致优先级。在 HTTP/2 下,您可以同时请求所有资产,但实际上应该优先考虑 CSS 而非图像。大多数浏览器都这样做,但他们是否以最佳方式做到了这一点?
| 归档时间: |
|
| 查看次数: |
7557 次 |
| 最近记录: |