1.SOCKS是协议
SOCKS是防火墙安全会话转换协议(Protocol for sessions traversal across firewall securely),是客户端和服务端之间的代理协议。
举例来说,Bill希望通过互联网与Jane沟通,但他们的网络之间存在一个防火墙,Bill不能直接与Jane沟通,所以Bill连接到他的网络上的SOCKS代理服务器,告诉它他想与Jane创建连接,SOCKS代理服务器打开一个能够穿过防火墙的连接,并促进Bill与Jane之间的通信。
2.套接字(Socket)是API
套接字(Socket)原本是由BSD UNIX开发的,后来被移植到了Windows的Winsock以及嵌入式操作系统中。
应用程序在使用TCP或UDP通信时,会使用到操作系统提供的类库,这种类库被称为API(Application Programming Interface,应用程序接口)。套接字(Socket)不是协议,就是这种 API,换句话说,套接字(Socket)是实实在在的程序。
使用TCP或UDP通信时,会广泛使用套接字(Socket)的API,应用程序利用套接字(Socket),可以设置对端的IP地址、端口号,并实现数据的发送与接收。
3.WebSocket是协议
WebSocket协议是客户端与服务端之间的全双工通信协议,于2011年12月11日被IETF定为RFC 6455标准。
WebSocket与HTTP一样,都属于应用层协议。但我们已经有了HTTP协议,为什么还另外需要一个协议呢?
答案很简单,因为HTTP协议有一个缺陷:通信每次都只能由客户端发起。
举例来说,如果我们想了解今天的天气,只能是客户端向服务端发出请求,然后服务端返回查询结果。HTTP协议做不到服务端主动向客户端推送信息。
WebSocket的最大特点就是,客户端与服务器之间只需完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。客户端可以主动向服务端发送信息,服务端也可以主动向客户端推送信息,是真正的双向平等对话。
但是,WebSocket与HTTP有一点是一样的,首次连接的发起方仍是客户端。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/httpexp/10034.html