WebSocket于HTTP 、WebSocket与Socket的区别

WebSocket于HTTP 、WebSocket与Socket的区别

最近在作一个IM 的项目,最近对于这块的理解比较模糊,这里对他们的不一样和相同作一个区分,可是因为这个项目须要在IOS、Android和Web中多平台,最后选择了WebSocket;git

这里有一张图详细介绍了 TCP/IP 协议族中的各个协议在 OSI模型 中的分布,一图胜千言(下图来自 科来)github

1. WebSocket介绍

原理

WebSocket同HTTP同样也是应用层的协议,可是它是一种双向通讯协议,是创建在TCP之上的。设计模式

链接过程 —— 握手过程

    1. 浏览器、服务器创建TCP链接,三次握手。这是通讯的基础,传输控制层,若失败后续都不执行。
    1. TCP链接成功后,浏览器经过HTTP协议向服务器传送WebSocket支持的版本号等信息。(开始前的HTTP握手)
    1. 服务器收到客户端的握手请求后,一样采用HTTP协议回馈数据。
    1. 当收到了链接成功的消息后,经过TCP通道进行传输通讯

2. WebSocket于HTTP

相同点

    1. 都是应用层协议基于TCP协议来传输数据的,都是可靠性传输协议。
    1. 都是应用层协议。

不一样点

    1. WebSocket是双向通讯协议,模拟Socket协议,能够双向发送或接受信息。HTTP是单向的。
    1. WebSocket是须要握手进行创建链接的。

联系

WebSocket在创建握手时,数据是经过HTTP传输的。可是创建以后,在真正传输时候是不须要HTTP协议的。浏览器

3.WebSocket与Socket的关系

Socket其实并非一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口,它工做在 OSI 模型会话层(第5层),是为了方便你们直接使用更底层协议(通常是 TCP 或 UDP )而存在的一个抽象层。服务器

Socket是应用层与TCP/IP协议族通讯的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来讲,一组简单的接口就是所有,让Socket去组织数据,以符合指定的协议。设计

当两台主机通讯时,必须经过Socket链接,Socket则利用TCP/IP协议创建TCP链接。TCP链接则更依靠于底层的IP协议,IP协议的链接则依赖于链路层等更低层次。cdn

区别

Socket是传输控制层协议,WebSocket是应用层协议。blog

Star 个人GitHub接口

# Backget

相关文章
相关标签/搜索