标题是从 documentation of Ratchet 复制粘贴的(一个 PHP 库,用于通过 Websockets 在客户端和服务器之间提供通信)。
Some aggressive proxies will block traffic that isn't on port 80 or 443 (not many, research your target audience)
这里的代理是什么意思?网络通信链中的代理位置是什么?客户端?在中间网络的某个地方?如何知道我的听众是否有这个问题。有人可以用外行的话解释一下这是什么意思。我预先非常感谢你让我理解这个重要的概念。
最佳答案
代理服务器是通常放置在企业网络和类似网络中以控制 Web 访问的网络设备。有两种类型的代理:显式代理和透明代理。第一个是客户端应用程序配置为使用代理 IP 或主机和服务端口(通常为 8080),后者是客户端应用程序不知道并且传出流量通过基于策略的方式到达它的地方路由或使用专用协议(protocol),例如 WCCP。
在任何一种情况下,行为都是相同的,您在网络中有一个设备正在执行应用程序层访问控制,并且通常(除非另有配置)它们将仅允许访问监听端口的服务器:80 用于 HTTP 协议(protocol),443 用于 HTTPS协议(protocol),它们是这些协议(protocol)的默认服务端口。
文档试图说的是,您应该让服务器端服务或应用程序监听这些端口之一,以避免出现由于在其网络中使用代理服务器而导致来自某些客户端的连接被阻止的情况。
您的客户端可能会通过观察 Windows 计算机上的 Internet 设置 > Lan 设置来检测是否正在使用代理:
对于透明代理,事情会复杂得多,因为客户端不知道代理的存在,在最坏的情况下,透明代理将通过检查数据包捕获来检测,您可能会发现身份验证请求或一些通常不存在的 header ,如果有的话在网络中没有代理。
关于php - 一些激进的代理会阻止不在端口 80 或 443 上的流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799595/