如何使用HTTP协议实现从HTTP服务器到客户端的异步数据流的发送?

时间:2017-12-21 01:00:36

标签: http asynchronous stream http-headers reactive-streams

流行的HTTP服务器或框架如何使用HTTP协议实现从HTTP服务器到HTTP客户端的异步数据流? (客户端可以是浏览器或非浏览器)

[client] ----request for data----> [server]

[client] <-------xxx------[server]
[---delay---]
[client] <-------xxxxxx---[server]
[---delay---]
[client] <-------x--------[server]
[---delay---]
[client] <-------xxx------[server]
[---delay---]
[client] <-------xxxx-----[server]

延迟可能是非确定性的

x表示对服务器有意义的单个数据对象&amp;客户端。

只是强调,我不是在寻找流的实现(例如反应流,RxJava等),但是 我想知道HTTP协议如何用于实现这种异步数据流的细节(不是视频流,而是json流)。 例如,他们使用哪些HTTP标头,使用什么样的连接等。

1 个答案:

答案 0 :(得分:0)

基本上,这里感兴趣的HTTP标头是:

header-name:header-value(comment)

connection:keep-alive(保持连接打开)

transfer-encoding:chunked(数据以一系列块发送)

接受:application / stream + json(或其他类似的流媒体类型)

content-type:application / stream + json(或其他类似的流媒体类型)

此信息是通过观察邮递员/卷曲之间的http流量收集的 简单的spring webflux服务。

有关这些标头及其值的完整说明:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers