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

xoshrz7s  于 2022-11-29  发布在  其他
关注(0)|答案(2)|浏览(208)

在办公室里有一个关于浏览器发送握手头的能力是建立WebSocket连接的一部分的争论。
WebSocket规范明确了头是可能的,而且,事实上,在我的非浏览器客户端代码中,我确实设置了握手头,它们被接收时没有发出。
公开辩论的是:使用javascript插入头的web浏览器可以成为握手的一部分吗?规范似乎表明没有什么反对它的,但没有人能找到客户端文档说明如何操作。
有很多相互矛盾的信息。这显然是可能的,因为我可以在Java中没有问题地做。但对于Javascript,没有人知道如何做。这是浏览器的限制吗?
澄清我的问题与其他问题的不同之处:无法做到这一点是默认javascript库的限制吗?Web浏览器还是规范?看起来只是库的限制

ibrsph3r

ibrsph3r1#

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

roejwanj

roejwanj2#

问题是在浏览器中创建WebSocket连接的标准API没有提供任何设置自定义头文件的机制。因此,这是webSocket浏览器API的一个限制。
您可以控制发送的URL,包括随请求发送的查询参数和Cookie,以便能够使用路径、查询参数或Cookie随连接请求发送其他信息。

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

相关问题