Javascript 获取Websocket connect的完整响应
我的代码:Javascript 获取Websocket connect的完整响应,javascript,html,ssl,websocket,http-headers,Javascript,Html,Ssl,Websocket,Http Headers,我的代码: <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
<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>
我的问题是,是否可以获得包含HTTP头和TLS证书的完整响应
多谢各位
我的问题是,是否可以获得包含HTTP头和TLS证书的完整响应
不,不是。浏览器中的WebSocket界面不公开该信息。HTTP用于建立初始WebSocket连接,但在此之后,该协议更改为WebSocket协议,不再使用HTTP。WebSocket的浏览器界面不公开自定义标题。您可以请求URL(带有协议、端口、域、路径、查询字符串等),并且可以发送零个或多个子协议字符串。就这样
从MDN中,这是用于建立WebSocket连接的接口:
WebSocket WebSocket(
in DOMString url,
in optional DOMString protocols
);
一旦连接从HTTP升级到WebSocket协议,就不再有HTTP头了。如您所见,该数据以WebSocket框架发送。在该数据帧格式中,您将从该帧获取所有有效负载数据,而不是用于描绘帧和管理安全性的内务管理字节。没有要获取的标题
如果连接是TLS,这对您来说是完全透明的,并且没有任何信息可用。好吧,简单地说。。。套接字是最佳的,因为它们具有较小的信息,这意味着较小的头。如果需要,您可以在其标题中传递一些数据。浏览
事件对象..请参见WebSocket不是HTTP,它只是使用HTTP来启动连接。一旦建立了连接,就不再涉及HTTP。WebSocket API不公开对初始HTTP响应、TLS信息甚至底层套接字的访问。从服务器获得的消息数据是服务器实际发送的完整消息数据,减去仅用于传输目的的帧和加密。
WebSocket WebSocket(
in DOMString url,
in optional DOMString protocols
);