我在這里制作了一個真正的 minecraft 瀏覽器埠,它只是多人游戲,它基于 websockets。
https://g.eags.us/eaglercraft/
我希望此頁面上的游戲能夠使用 WS 和 WSS websocket 協議連接到服務器,因此對于只是嘗試設定小型私有服務器來玩此游戲的人來說,購買 Web SSL 證書不是強制性的從學校電腦什么的。我的源服務器和 cloudflare 目前都配置為僅使用嚴格的 HTTPS,您通常無法從安全的 HTTPS 頁面初始化不安全的 WS websocket,這意味著任何試圖通過我的“官方”鏈接在自己的服務器上玩游戲的人都需要一個SSL 證書和 WSS URI。
我已將content-security-policy: upgrade-insecure-requests標題添加到我在上面發布的鏈接中。我的印象是,即使頁面是通過 HTTPS 加載的,這也可以在頁面上建立常規的不安全 HTTP/WS 連接,但它似乎不起作用。當我在此頁面的 chrome devtools 控制臺中創建一個 WebSocket 物件并嘗試將其連接到 WS URI 時,網路選項卡顯示該物件使用的實際請求已將 URI 中的 WS 替換為 WSS,即使我鍵入的 URI 是WS。
如何禁用此特定頁面的所有這些行為并按原樣執行 websocket 請求
uj5u.com熱心網友回復:
我誤解了標題的行為。它像宣傳的那樣作業,將 URI 從 WS 升級到 WSS。我最初將它解釋為一個標頭,它為瀏覽器應用權限覆寫,將所有套接字 URI 視為已經升級到 WSS 而不實際升級底層 URI 和請求。
為我凌晨 3:00 的困惑道歉,請參閱MDN 頁面以獲得更多說明
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398118.html
標籤:javascript http 网络套接字 https
