SOCKS、Socket、WebSocket的区别

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

(12)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2021年11月26日 15:02
下一篇 2021年12月3日 23:38

相关推荐

  • 客户端的两种客户端存储:Cookie和Web Storage

    1.Cookie HTTP 是无状态协议,之前已认证成功的用户状态无法通过协议层面保存下来。即无法实现状态管理,因此即使当该用户下一次继续访问,也无法区分他与其他的用户。于是我们会使用 Cookie 来管理 Session,以弥补 HTTP 协议中不存在的状态管理功能。 步骤 1: 客户端把用户 ID 和密码等登录信息…

    HTTP经验 2023年2月14日
    06030
  • URI、URL、URN的区别

    一个HTTP请求的目的是呼叫“资源”,可以是文档、照片或其他任何内容。那如何表达“资源”的唯一性呢? URI URI 指统一资源标识符(Uniform Resource Identifier),用来标识资源的唯一性。 URL URL 指统一资源定位符(Uniform Resource Locator),URI的子集,是…

    HTTP经验 2020年9月17日
    01.9K0
  • 宝塔面板网站升级了php版本以后502 Bad Gateway错误最佳解决方案

    初期安装的是php7.3版本,用宝塔面板一键部署Wordpress,一次偶然的机会看到php可以升级到7.4版本,那就升级吧,升级过后发现网站nginx报502错误,很明显是php与nginx这块的衔接问题(因为别的本人都没动过)。 解决方案如下: 1.检查Nginx配置文件 首先打开Nginx的配置文件查看: 我们发…

    HTTP经验 2020年1月15日
    08.6K3

发表回复

登录后才能评论