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

(11)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2021年11月26日
下一篇 2021年12月3日

相关推荐

  • 哈希(Hash)算法、对称(Symmetric)加密算法、非对称(Asymmetric)加密算法的区别

    1.哈希(Hash)算法 哈希(Hash)算法,又称散列算法,是一种单向(One-way)不可逆加密算法:明文通过使用盐(随机数)被加工成一个唯一的摘要,因为没有解密用的密钥,所以密文不可逆转为明文。 使用场景:因为摘要的唯一性,所以哈希算法常用于使用这种唯一性来比较数据。 例如,用户首次注册时,用户提交的密码被加盐以…

    HTTP经验 2021年12月3日
    02.6K0
  • URI、URL、URN的区别

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

    HTTP经验 2020年9月17日
    01.7K0
  • 客户端的两种客户端存储:Cookie和Web Storage

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

    HTTP经验 2023年2月14日
    03670

发表回复

登录后才能评论