2016-10-04 139 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

相关问题