gpt4 book ai didi

javascript - 获得 Websocket 连接的完整响应

转载 作者:太空宇宙 更新时间:2023-11-03 14:05:16 24 4
gpt4 key购买 nike

我的代码:

<script>
// Create WebSocket connection.
const socket = new WebSocket('wss://echo.websocket.org:443');

// Connection opened
socket.addEventListener('open', function (event) {
socket.send('Hello Server!');
});

// Listen for messages
socket.addEventListener('message', function (event) {
console.log('Message from server', event.data);
});
</script>

输出:

Message from server Hello Server!

我的问题是,是否可以获得包含 HTTP header 和 TLS 证书的完整响应?

谢谢。

最佳答案

My question is, is it possible to get the full response that includes the HTTP Header and the TLS certificate?

不,不是。浏览器中的 WebSocket 接口(interface)不公开该信息。 HTTP 用于建立初始的 WebSocket 连接,但之后协议(protocol)更改为 WebSocket 协议(protocol),不再使用 HTTP。 WebSockets 的浏览器接口(interface)不公开自定义 header 。您可以请求一个 URL(带有协议(protocol)、端口、域、路径、查询字符串等),您可以发送零个或多个子协议(protocol)字符串。就是这样。

来自 MDN,这是建立 WebSocket 连接的接口(interface):

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

一旦连接从 HTTP 升级到 WebSocket 协议(protocol),就不再有 HTTP header 了。如您所见here on MDN,该数据在 WebSocket 帧中发送.在该数据帧格式中,除了用于描述帧和管理安全性的内务字节外,您将从该帧中获取所有有效负载数据。那里没有标题。

如果连接是 TLS,这对您来说是完全透明的,并且也不会提供任何信息。

关于javascript - 获得 Websocket 连接的完整响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43141900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com