1

流行的 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 是对服务器和客户端有意义的单个数据对象。

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

4

1 回答 1

1

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

标头名称:标头值(注释)

连接:保持活动(保持连接打开)

传输编码:分块(数据以一系列块的形式发送)

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

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

这些信息是通过观察 postman/curl 和简单的 spring webflux 服务之间的 http 流量来收集的。

有关这些标头及其值的完整描述:

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

于 2018-01-05T10:41:19.093 回答