2016-03-08 54 views
0

我正在學習HTTP2,並使用在Chrome中正常工作的jetty開發了一個POC。當瀏覽器不支持http2時回退到http1.1

但是,當我在Firefox中點擊相同的URL時,我的HTTP2 URL請求出現空白頁面,並顯示異常「您正試圖查看的頁面無法顯示,因爲無法驗證接收到的數據的真實性。」 搜索後發現,在Firefox中,我必須從「about:config」啓用network.http.spdy.enabled.http2。

我的問題是如果瀏覽器不支持HTTP2服務器或瀏覽器端是否有任何機制回退到HTTP1。

回答

2

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

如果不查看服務器端代碼,我猜測在配置ServerConnector時,您沒有將HttpConnectionFactory作爲工廠之一添加,因此您不會收回備用數據。此外,請記住,回退從TLS上的HTTP/2到TLS上的HTTP/1.1;換句話說,無論您使用的是HTTP/2還是HTTP/1.1,您都在「https」域中,並且您將保持在那裏。 因此,您需要有適當的證書才能進行回退:您無法從加密的HTTP/2轉到明文HTTP/1.1。

This example向您展示瞭如何正確設置一個正常工作的HTTP/2服務器,並回退到HTTP/1.1。