Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取Websocket connect的完整响应_Javascript_Html_Ssl_Websocket_Http Headers - Fatal编程技术网

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
);