首頁 >web前端 >js教程 >可以將自訂 HTTP 標頭新增至 WebSocket 用戶端連線嗎?

可以將自訂 HTTP 標頭新增至 WebSocket 用戶端連線嗎?

Linda Hamilton
Linda Hamilton原創
2024-12-15 03:32:09937瀏覽

Can Custom HTTP Headers Be Added to WebSocket Client Connections?

WebSocket 客戶端API 中的自訂HTTP 標頭

Web 平台中的WebSocket API 支援透過持久雙向通道在客戶端和客戶端伺服器之間進行通訊。但是,透過此通道傳送 HTTP 標頭時,可能會有限制。

新增自訂HTTP 標頭

雖然可以使用第三方HTTP 新增自訂HTTP 標頭標頭用戶端支援它,WebSocket API 不提供直接新增自定義標頭的方法。

WebSocket 標頭限制

WebSocket 建構子僅允許指定路徑和協定欄位。 HTTP 路徑(例如「GET /xyz」)和協定標頭(「Sec-WebSocket-Protocol」)可以在 WebSocket 初始化期間設定。

「Sec-WebSocket-Protocol」標頭,可以是用於特定於 WebSocket 的身份驗證,派生自 WebSocket 建構函數的第二個參數。例如:

var ws = new WebSocket("ws://example.com/path", "protocol");

替代身份驗證/授權方法

由於無法新增自訂標頭,建議使用WebSocket 驗證或授權的替代方法:

  • 票務系統:伺服器向客戶端,客戶端在連線設定期間傳遞的客戶端。然後,服務器驗證票證的有效性。
  • URL/查詢字串驗證:在 URL 或查詢字串中傳遞驗證令牌。

棄用基本驗證

先前透過「授權」支援基本驗證標頭。但是,現在已棄用此選項,並且即使指定了此標頭,現代瀏覽器也不會發送此標頭。

以上是可以將自訂 HTTP 標頭新增至 WebSocket 用戶端連線嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn