SOCKS、Socket、WebSocket的区别

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

(5)
上一篇 2021年11月26日 15:02
下一篇 2021年12月1日 22:54

相关推荐

  • 解析URI、URL、URN的区别

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

    TCP/IP经验 2020年9月17日
    09620
  • 负载/压力测试工具一览表

    负载测试和压力测试对于确保 web 应用的性能和可缩放性非常重要。 尽管它们的某些测试是相同的,但目标不同。 负载测试:测试应用是否可以在特定情况下处理指定的用户负载,同时仍满足响应目标。 应用在正常状态下运行。 压力测试:在极端条件下(通常为长时间)运行时测试应用的稳定性。 测试会对应用施加高用户负载(峰值或逐渐增加…

    TCP/IP经验 2021年12月26日
    01900
  • 对象存储(OBS)绑定的自定义域名不开启CDN加速如何支持 HTTPS(SSL) 证书访问?

    笔者在购买了对象存储服务后发现国内云计算厂商对于对象存储实现https这一块,只有阿里云支持自动,京东云支持工程师协助,其他厂商要么表示不支持,要么需麻烦的配置,因此对于已经购买了非阿里云服务器的朋友们,今天笔者分享自己如何配置的,如有问题麻烦批评指正。 以示例的形式介绍在 OBS(对象存储服务) 中通过反向代理配置自…

    TCP/IP经验 2019年12月31日
    02.2K0

发表评论

登录后才能评论