当浏览器不支持 http2 时回退到 http1.1
Fallback to http1.1 when browser doesn't support http2
我正在学习 HTTP2 并使用码头开发了一个 POC,它在 chrome 中运行良好。
但是当我在 Firefox 中点击相同的 URL 时,我的 HTTP2 URL 请求得到了空白页面,异常显示 "The page you are trying to view cannot be shown because the authenticity of the received data could not be verified."
搜索后发现在 firefox 中我必须从 "about:config".
启用 network.http.spdy.enabled.http2
我的问题是,如果浏览器不支持 HTTP2,服务器或浏览器端是否有任何机制可以回退到 HTTP1。
如果客户端不支持 HTTP/2.,Jetty 确实支持回退到 HTTP/1.1
在不查看服务器端代码的情况下,我猜测您在配置 ServerConnector
时没有将 HttpConnectionFactory
添加为工厂之一,因此您不会得到回退.
此外,请记住回退从 HTTP/2 over TLS 到 HTTP/1.1 over TLS;换句话说,无论您使用的是 HTTP/2 还是 HTTP/1.1,您都在 "https" 土地上,并且会一直呆在那里。
因此,您需要有适当的证书才能进行回退:您不能从加密 HTTP/2 到明文 HTTP/1.1.
This example 向您展示如何正确设置正常工作的 HTTP/2 服务器并回退到 HTTP/1.1.
我正在学习 HTTP2 并使用码头开发了一个 POC,它在 chrome 中运行良好。
但是当我在 Firefox 中点击相同的 URL 时,我的 HTTP2 URL 请求得到了空白页面,异常显示 "The page you are trying to view cannot be shown because the authenticity of the received data could not be verified." 搜索后发现在 firefox 中我必须从 "about:config".
启用 network.http.spdy.enabled.http2我的问题是,如果浏览器不支持 HTTP2,服务器或浏览器端是否有任何机制可以回退到 HTTP1。
Jetty 确实支持回退到 HTTP/1.1
在不查看服务器端代码的情况下,我猜测您在配置 ServerConnector
时没有将 HttpConnectionFactory
添加为工厂之一,因此您不会得到回退.
此外,请记住回退从 HTTP/2 over TLS 到 HTTP/1.1 over TLS;换句话说,无论您使用的是 HTTP/2 还是 HTTP/1.1,您都在 "https" 土地上,并且会一直呆在那里。 因此,您需要有适当的证书才能进行回退:您不能从加密 HTTP/2 到明文 HTTP/1.1.
This example 向您展示如何正确设置正常工作的 HTTP/2 服务器并回退到 HTTP/1.1.