2016-10-04 258 views
0

辦公室裏有一場關於瀏覽器發送握手標頭的能力的爭論是建立websocket連接的一部分。瀏覽器中的websocket客戶端可以發送標題嗎?

The websocket spec明確表明標題是可能的。而且,事實上,在我的非瀏覽器客戶端代碼中,我設置了握手標頭,並且他們沒有收到和發出。

公開辯論是:使用JavaScript插入標頭的Web瀏覽器是否可以作爲握手的一部分?規範似乎表明沒有任何反對意見,但沒有人能找到說明如何的客戶端文檔。

有很多衝突的信息。這顯然是可能的,因爲我可以在沒有問題的情況下在Java中執行它。但對於Javascript而言,沒有人會看到如何。這是瀏覽器限制嗎?

澄清我的問題與其他人不同:是否無法對默認JavaScript庫進行限制?網絡瀏覽器或規格?它看起來像它只是一個庫限制

+0

它不能被瀏覽器限制,可以嗎?如果他們願意,每個人都可以編寫自己的瀏覽器。 – Gendarme

+0

可能重複的[Websockets客戶端API中的HTTP頭](http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-api) – vtortola

回答

0

恐怕Web瀏覽器中的WebSocket API不允許設置自定義標頭。儘管如此,瀏覽器還是會設置cookie。

0

問題是用於在瀏覽器中創建webSocket連接的標準API不提供任何設置自定義標題的機制。所以,這是webSocket瀏覽器API的限制。

您可以控制您發送的URL,包括查詢參數和Cookie與請求一起發送,因此您可以使用路徑,查詢參數或cookie通過連接請求發送附加信息。

WebSocket WebSocket(
    in DOMString url, 
    in optional DOMString protocols 
); 
+0

@ChristianBongiorno - 這是否回答了您的問題? – jfriend00

相關問題