美文网首页
【百科】客户端和服务器端的通信协议

【百科】客户端和服务器端的通信协议

作者: 盐果儿 | 来源:发表于2022-11-07 19:36 被阅读0次

通信协议定义了客户端和服务器端互相通信需要遵守的规则和约定。以下是五种常用通信协议的理解。

1. HTTP

1.1 HTTP pull

解决问题:普通的通信方式

原理:客户端发送消息给服务端,服务端在连接关闭后返回一个消息。

1.2 HTTP push

解决问题:服务端可以继续给客户端发送新数据

原理:客户端发起一个请求,服务端回应后,连接不断开,所以服务端可以不停地把新数据发送给客户端。

2. Ajax轮询(Ajax polling: Asynchronous JavaScript and XML) XML在这里也可以是其他数据,比如:JSON

解决问题:不一直占用一个连接

原理:客户端隔个几秒就发送一次请求,询问服务器是否有新信息。

3. Long polling

解决问题:这样就减少了客户端和服务端不断频繁连接和传递数据的过程,并且不会消耗服务端太多资源。

原理:客户端发起请求,如果服务端的数据没有发生变更,那么就hold住请求,直到服务端的数据发生了变更,或者达到了一定的时间就会返回。

4. Server sent events

解决问题:服务端在短时间内收到大量更新需要给客户端发送。

原理:服务端可以给客户端自动发送更新的数据或者事件,但是客户端必须订阅这些事件,也就是说先要建立起来初步的连接。

5. Websockets

解决问题:Websockets提供了双向的通信。(Websockets和HTTP互相兼容,区别是HTTP则只能单向通信)

原理:客户端和服务端可以在同一时间,同一连接上,互相收发消息。

6. 消息队列(Message queues)

解决问题:解决多个客户端请求统一资源的问题。

原理:消息队列允许服务之间不同步的交流。它有两个组件分别是:创建消息或者发送请求的producer,处理请求的consumer。在消息队列中consumer的延迟不会影响producer,因为producer把消息发送到队列后,又继续去处理别等任务去了。消息队列保证了consumer可以取到他们的消息。

Reference:

https://iq.opengenus.org/types-of-client-server-communication/

相关文章

网友评论

      本文标题:【百科】客户端和服务器端的通信协议

      本文链接:https://www.haomeiwen.com/subject/hyqitdtx.html