小编典典

如何从Web浏览器(客户端)建立TCP套接字连接?

ajax

我读过有关 WebSocket的文章, 但它们似乎并不是纯粹的“套接字”,因为在它们上面有一个应用程序层协议。“ WS:

是否可以通过Web浏览器进行纯套接字连接来激活网页?

这是我在黑暗中的随机刺伤

  • Java提供的Applet套接字(需要安装Java)
  • Flash提供的Flash插槽(需要安装闪光灯)

但是关于HTML5,如果不是Socket,为什么将它们称为WebSocket?

websocket协议的实现是如此简单,以至于它是“几乎”套接字吗?


阅读 1171

收藏
2020-07-26

共1个答案

小编典典

我读过有关WebSocket的文章,但它们似乎并不是纯粹的“套接字”,因为在它们上面有一个应用程序层协议。

websocket协议实现起来是如此简单,以至于它是“几乎”套接字吗?

直接从浏览器直接进行常规套接字连接永远不会发生,因为这带来了巨大的风险。WebSockets与浏览器中的原始套接字差不多。初始的WebSockets握手类似于HTTP握手(允许Web服务器代理/桥接),并增加了CORS类型的安全性。另外,WebSockets是基于消息的传输(而不是作为原始TCP进行流传输),这是通过在每个消息帧上使用两个字节的标头来完成的。

甚至flash也无法完全建立原始TCP连接。闪存套接字还增加了CORS安全性,但是闪存套接字连接代替了带内握手,而是连接到目标服务器上的端口843,以请求安全策略文件。

是否可以通过Web浏览器进行纯套接字连接来激活网页?

是的,您可以使用我的websockify桥/代理,它允许启用WebSockets的浏览器通过websockify直接连接到TCP套接字。

但是关于HTML5,如果不是Socket,为什么将它们称为WebSocket?

WebSocket是一种基于TCP套接字的传输。握手之后,开销非常小(通常只有两个字节的标头)。

2020-07-26