浏览器中使用 HTTP/1.1 提供页面,CURL 中使用 HTTP/2 提供页面

问题描述 投票:0回答:1

我在本地 Apache 服务器上安装了 HTTP/2,并在 Ubuntu 上运行。

HTTP/2 正在工作,因为当我在页面上执行 CURL 时,它设法升级协议:

$ /usr/bin/curl -I --http2 http://test.local/public/
/usr/bin/curl: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/curl)
HTTP/1.1 101 Switching Protocols
Upgrade: h2c
Connection: Upgrade

HTTP/2 200 
...

从浏览器访问页面,看起来仍然是HTTP/1.1:

我希望 HTTP/2 在通过浏览器提供服务时能够正常工作。

我在这里缺少什么?

我尝试重新启动我的计算机以及 Chromium、Chrome、FireFox 和 Brave,但在 HTTP/2 中没有看到它。我尝试过 WP、Symfony 应用程序和简单的 HTML/CSS 页面。

apache google-chrome http2 pagespeed
1个回答
0
投票

事实证明,浏览器需要 HTTPS / SSL 才能使 HTTP/2 工作,而 CURL 则不需要。

安装本地证书并通过 HTTPS 提供页面后,我在浏览器中通过 CURL 获得了 HTTP/2。

参见: 为什么 HTTP/2 的浏览器实现需要 TLS?

© www.soinside.com 2019 - 2024. All rights reserved.