天天看点

http和socket和websocket的区别和联系的学习笔记

http和socket和websocket的区别和联系的学习笔记

1.OSI七层网络模型

OSI网络七层模型分析:
  • OSI网络七层模型 TCP/IP四层概念模型 五层模型 对应的网络协议
    应用层(Application) 应用层 应用层 HTTP,TFTP, FTP, NFS, WAIS,SMTP
    表示层(Presentation 应用层 应用层 Telnet, Rlogin, SNMP, Gopher
    会话层(Session) 应用层 应用层 SMTP, DNS
    传输层(Transport) 传输层 传输层 TCP, UDP
    网络层(Network) 网络层 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
    数据链路层(Data Link) 数据链路层 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
    物理层(Physical) 数据链路层 物理层 IEEE 802.1A,iEEE 802.2到EEE 802.11
    http和socket和websocket的区别和联系的学习笔记

2.http

  • 应用层协议: HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
  • HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。

    无状态:每次连接只处理一个请求,请求结束后断开连接。

    无连接:对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

3.socket

  • socket: TCP/IP网络的API。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
  • tcp/ip :
    • 代表传输控制协议/网际协议,指的是一系列协议,TCP/IP 模型在 OSI 模型的基础上进行了简化,变成了四层,从下到上分别为:网络接口层、网络层、传输层、应用层
      http和socket和websocket的区别和联系的学习笔记

4.websocket

  • WebSocket

    是双向的,在客户端-服务器通信的场景中使用的全双工协议,与

    HTTP

    不同,它以

    ws://

    wss://

    开头。它是一个有状态协议,这意味着客户端和服务器之间的连接将保持活动状态,直到被任何一方(客户端或服务器)终止。在通过客户端和服务器中的任何一方关闭连接之后,连接将从两端终止。
  • websocket的特点:

    (1)建立在 TCP 协议之上,服务器端的实现比较容易。

    (2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

    (3)数据格式比较轻量,性能开销小,通信高效。

    (4)可以发送文本,也可以发送二进制数据。

    (5)没有同源限制,客户端可以与任意服务器通信。

    (6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

    Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。

5.websocket和http的关系

  • 相同点

    都是一样基于TCP的,都是可靠性传输协议。 都是应用层协议。

    不同点

    WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。 WebSocket是需要握手进行建立连接的。

    联系 WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

继续阅读