firefox - 当浏览器不支持 http2 时回退到 http1.1

标签 firefox jetty http2

我正在学习 HTTP2 并使用 jetty 开发了一个 POC,它在 chrome 中运行良好。

但是当我在 Firefox 中点击相同的 URL 时,我的 HTTP2 URL 请求得到空白页面,异常显示“您尝试查看的页面无法显示,因为无法验证接收到的数据的真实性。” 搜索后发现在 Firefox 中我必须从“about:config”启用 network.http.spdy.enabled.http2。

我的问题是,如果浏览器不支持 HTTP2,服务器或浏览器端是否有任何机制可以回退到 HTTP1。

最佳答案

Jetty如果客户端不支持 HTTP/2,则支持回退到 HTTP/1.1。

如果不查看服务器端代码,我猜测您在配置 ServerConnector 时没有将 HttpConnectionFactory 添加为工厂之一,因此您不需要没有后备。

此外,请记住,回退是从基于 TLS 的 HTTP/2 到基于 TLS 的 HTTP/1.1;换句话说,您处于“https”状态,并且无论您使用的是 HTTP/2 还是 HTTP/1.1,您都将留在那里。 因此,您需要拥有适当的证书才能进行回退:您无法从加密的 HTTP/2 转到明文 HTTP/1.1。

This example向您展示如何正确设置正常工作的 HTTP/2 服务器并回退到 HTTP/1.1。

关于firefox - 当浏览器不支持 http2 时回退到 http1.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868261/

相关文章:

sockets - 如何格式化 HTTP 响应

jersey - 我如何禁用选项请求方法甚至在 dropwizard 中被处理

嵌入式 jetty 的 Java web.xml 位置

java - Camel 2.14.0/CXF 3.0.1 jetty 配置 : Protocol mismatch error

http - HTTP 1.1 和 HTTP 2.0 有什么区别?

python - 超 HTTP2 自定义 SSLContext 错误

html - CSS DIV 默认宽度在 IE 中看起来不错。不是火狐

javascript - 删除 showModalDialog API

html - 面具在 Firefox 中不起作用

http2 - 为什么 HTTP/2 中的流标识符是 31 位,为什么它前面有一个保留位?