Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Sockets html5 WebSocket会被防火墙破坏吗?_Sockets_Html_Firewall_Websocket_Portforwarding - Fatal编程技术网

Sockets html5 WebSocket会被防火墙破坏吗?

Sockets html5 WebSocket会被防火墙破坏吗?,sockets,html,firewall,websocket,portforwarding,Sockets,Html,Firewall,Websocket,Portforwarding,我对html5的websockets规范非常兴奋,但我有一个担忧 现在每个人都在网络上运行,路由器(有线/无线)内置了防火墙,windows也内置了防火墙 考虑到这一点,当服务器试图连接回启动websocket握手的浏览器时,绝大多数用户会失败吗?(大多数人不知道如何在路由器上设置端口转发) 还是我的想法不正确,它会顺利通过?我不是专家(请检查确认),但我相信会有一种升级机制,可以建立常规HTTP连接,然后升级到WebSocket,因此现有的防火墙规则不会干扰,除非它们进行积极的应用程序级数据包

我对html5的websockets规范非常兴奋,但我有一个担忧

现在每个人都在网络上运行,路由器(有线/无线)内置了防火墙,windows也内置了防火墙

考虑到这一点,当服务器试图连接回启动websocket握手的浏览器时,绝大多数用户会失败吗?(大多数人不知道如何在路由器上设置端口转发)


还是我的想法不正确,它会顺利通过?

我不是专家(请检查确认),但我相信会有一种升级机制,可以建立常规HTTP连接,然后升级到WebSocket,因此现有的防火墙规则不会干扰,除非它们进行积极的应用程序级数据包检查。连接仍由浏览器启动。

HTML 5 WebSocket不需要端口转发。继续从客户端建立连接,但一旦建立连接,客户端和服务器的不对称性就会消失。WebSocket还通过使用HTTPS目前使用的相同连接机制来穿透代理。

由于防火墙通常只是强制执行入站流量拒绝和出站流量路由规则(通常通过代理服务器),因此通常不存在与WebSocket流量相关的特定防火墙问题


代理服务器(在某种程度上,还有某些负载平衡路由器)则是另一回事(请参见)

任何进行全状态数据包检查的防火墙都会丢弃WebSocket流量。升级后-它不再是HTTP。它实际上不是HTTP。它被设计用来欺骗防火墙,使其看起来像HTTP。@Brian Statefull防火墙只验证数据包是否与现有的、未关闭的连接相关。它跟踪连接的状态(打开、打开、关闭、关闭),因此得名。当它检测到数据包是已经打开的授权连接的一部分时,它可以短路所有其他规则检查并让数据包通过。你想到的是第7层过滤器。这些防火墙不太常见,而且比大多数OSs中默认的正常第3层状态防火墙要昂贵得多。FWIW,我目前无法从客户网络连接到websocket服务器。连接尝试无限期挂起。到目前为止,我发现他们正在使用WatchGuard.com。允许我在websocket主机上访问HTTP,但websocket连接挂起。工作组网站列出错误:“与WebSocket协议(RFC6455)的连接通过HTTP代理和带有内容检查的HTTPS代理失败”。状态为“打开”。@BrianDilley,所以他们也会丢弃HTTPS数据包?还有c和