socks5
首先理解三个名词 http socket socks
http 属于应用层协议,是基于 TCP 连接的;而 socket 是属于 TCP/IP 协议封装的,其本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。可以讲 socket 看做网络通信过程中端点的抽象表示,他包含网络通信必须的五种信息:使用的协议,本地IP地址,本地port,远程IP地址,远程的port。
-
http
协议:就是所谓的短链接,即客户端向服务端发送一次请求后,服务端响应后连接即会断掉。 -
socket
:就是所谓的长连接,理论上客户端和服务端一旦建立连接,则不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该链接已释放网络资源。所以当一个socket连接中没有数据的传输,那么为了位置连续的连接需要发送心跳消息,具体心跳消息格式是开发者自己定义的。 -
sockts
是防火墙安全会话转换协议(Protocol for sessions traversal across firewall securely),是客户端和服务端之间的代理协议。
HTTP的长连接一般就只能坚持一分钟而已,而且是浏览器决定的,你的页面很难控制这个行为。Socket连接就可以维持很久,几天、数月都有可能,只要网络不断、程序不结束,而且是可以编程灵活控制的。