浏览器中的websocket客户端可以发送标头吗?

时间:2016-10-04 17:36:12

标签: javascript java http websocket

在办公室里有一个关于浏览器发送握手头的能力的争论,这是建立websocket连接的一部分。

The websocket spec表明标题是可行的。而且,事实上,在我的非浏览器客户端代码中,我设置了握手标头,并且它们在没有和发出的情况下被接收。

公开辩论是:使用javascript插入标头的网络浏览器是否可以成为握手的一部分?该规范似乎表明没有任何反对意见,但没有人能找到客户端文档说明如何。

有很多相互矛盾的信息。这显然是可能的,因为我能够在没有问题的情况下在Java中完成它。但对于Javascript,没有人看到如何。这是浏览器限制吗?

澄清我的问题与其他人的不同之处:是否无法对默认的javascript库进行限制?网络浏览器或规格?看起来它只是一个库限制

2 个答案:

答案 0 :(得分:0)

我担心Web浏览器中的WebSocket API不允许设置自定义标头。仍然,浏览器设置cookie,如果有的话。

答案 1 :(得分:0)

问题是在浏览器中创建webSocket连接的标准API不提供任何设置自定义标头的机制。因此,它是webSocket浏览器API的限制。

您可以控制发送的URL,包括查询参数和随请求一起发送的cookie,这样您就可以使用路径,查询参数或cookie通过连接请求发送其他信息。

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