有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

办公室里有一场激烈的辩论,关于浏览器发送握手头的能力是建立websocket连接的一部分

The websocket spec清楚地表明头是可能的。事实上,在我的非浏览器客户端代码中,我确实设置了握手头,它们在接收时没有发出

公开辩论是:使用javascript的web浏览器是否可以在握手中插入标题?该规范似乎表明没有任何反对它的地方,但没有人能找到客户端文档来说明如何使用它

有很多相互矛盾的信息。这显然是可能的,因为我可以用Java毫无问题地完成它。但是对于Javascript,没有人知道它是如何实现的。这是浏览器限制吗

为了澄清我的问题与其他问题的不同之处:不能这样做是对默认javascript库的限制吗?网络浏览器还是规范?看起来这只是图书馆的限制


共 (2) 个答案

  1. # 1 楼答案

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

    您可以控制发送的URL,包括查询参数和Cookie随请求一起发送,因此您可以使用路径、查询参数或Cookie随连接请求发送其他信息

    WebSocket WebSocket(
      in DOMString url,
      in optional DOMString protocols
    );
    
  2. # 2 楼答案

    恐怕web浏览器中的WebSocket API不允许设置自定义标题。尽管如此,浏览器还是会设置cookies(如果有的话)