目录
SOCKS是协议
SOCKS是Socket Secure的缩写,是位于会话层的套结字安全网络传输协议,主要用于客户端和服务器之间的SOCKS代理服务器。
Bill希望通过互联网与Jane沟通,但他们的网络之间存在一个防火墙,Bill不能直接与Jane沟通,所以Bill连接到他的网络上的SOCKS代理,告诉它他想与Jane创建连接,SOCKS代理打开一个能够穿过防火墙的连接,并促进Bill与Jane之间的通信。
Socket是API
Socket位于应用层与传输层之间的抽象控制层,是API接口。
Socket(套结字)原来是BSD UNIX开发的,后来被移植到了Windows的Winsock中。
应用在使用TCP或UDP时,会用到操作系统的API,又会使用到Socket的API,利用Socket,可以配置对端的IP地址、端口号,并实现数据的发送与接收这种双向功能。
Socket与WebSocket的区别是,Socket是通用功能,可用于很多地方,WebSocket仅用于浏览器这种HTTP客户端类型。
WebSocket是协议
WebSocket,即 Web 浏览器与 Web 服务器之间全双工通信标准。
WebSocket与HTTP一样,都属于应用层协议。
我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?
答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。
举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。
WebSocket的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。
客户端与服务器之间只需完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。
由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端,而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方都可直接向对方发送报文。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/tcpip/10034.html