最近一直被Socket 被Http搞懵了,然后归类整理了下
首先需要知道网络七层,从上至下 应用,表示,回话,传输,网络,数据链路,物理,一共7层
- WebSocket:
这个是在Html5提出的一种规范,可以说是比较新的,听说目前除了IE都支持,他和Http 一样都是应用层的东西,他也是基于TCP的可靠连接,是和Http并存的
他一开始还会进行一个Http请求,之后将保持长连接
- Http:
Http也是应用层的一种协议,即为短连接,就是你请求一次,我返回给你一次数据,服务器无法主动发数据给客户端,但是WebSocket可以,Websocket是一种全双工的通信方式,但是Http却是单工的
- Socket
Socket是一个接口,并不是协议,它连接于应用层与传输层之间
“Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,提供一套调用TCP/IP协议的API。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。”
那么通信的情况就是这样的,两个主机靠Socket链接,Socket则利用TCP/IP建立TCP链接,TCP依靠下一层的IP协议,IP协议依靠更下层的链路层等