WebSocket和HTTP的区别

HTTP协议

HTTP是单向的,客户端发送请求,服务器发送响应。当客户端向服务器发送请求时,该请求以HTTP或HTTPS的形式发送,服务器在接收到请求后会将响应发送给客户端。

每个请求都与一个对应的响应相关联,在发送响应后客户端与服务器的连接会被关闭。每个HTTP或HTTPS请求每次都会新建与服务器的连接,并且在获得响应后,连接将自行终止。 HTTP是在TCP之上运行的无状态协议。

HTTP可以运行在任何可靠的面向连接的协议(例如TCP,SCTP)的上层。当客户端将HTTP请求发送到服务器时,客户端和服务器之间将打开TCP连接,并且在收到响应后,TCP连接将终止,每个HTTP请求都会建立单独的TCP连接到服务器,如果客户端向服务器发送10个请求,则会打开10个单独的HTTP连接。并在获得响应后关闭。

WebSocket协议

WebSocket是双向的,在客户端与服务器通信的场景中使用的全双工协议,与HTTP不同,它以ws://或wss://开头。它是一个有状态协议,这意味着客户端和服务器之间的连接将保持活动状态,直到被客户端或服务器终止。在客户端和服务器中的任何一方关闭连接之后,连接将从两端终止。

以客户端与服务器通信为例,每当启动客户端和服务器之间的连接时,客户端与服务器进行握手随后创建一个新的连接,该连接将保持活动状态,直到被他们中的任何一方终止。建立连接并保持活动状态后,客户端和服务器将使用相同的连接通道进行通信,直到连接终止。

新建的连接被称为WebSocket。一旦通信链接建立和连接打开后,消息交换将以双向模式进行,客户端与服务器之间的连接会持续存在。如果其中任何一方(客户端服务器)宕掉或主动关闭连接,则双方均将关闭连接。WebSocket的工作方式与HTTP的工作方式略有不同,状态代码101表示WebSocket中的交换协议。

应用场景

WebSocket

  • 即时Web应用程序
  • 游戏应用程序
  • 聊天应用程序

HTTP

  • 要获取旧数据,或者只想获取一次数据供应用程序使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值