HTTP协议是如何实现从HTTP服务器向客户端发送异步数据流的?
How is HTTP protocol used to implement sending of asynchronous streams of data from HTTP server to client?
流行的HTTP服务器或框架是如何使用HTTP协议实现从HTTP服务器到HTTP客户端的异步数据流的?
(客户端可以是浏览器或 non-browser)
[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 表示对服务器和客户端有意义的个人数据 object。
只是强调一下,我不是在寻找流的实现(例如反应流、RxJava 等),而是
我想知道如何使用 HTTP 协议来实现这种异步数据流的详细信息(不是视频流,而是 json 流)。
例如,他们使用哪个 HTTP headers,使用什么样的连接等
基本上,这里感兴趣的 HTTP headers 是:
header-name:header-value(评论)
连接:keep-alive(保持连接打开)
transfer-encoding:分块(数据以一系列块的形式发送)
接受:application/stream+json(或其他类似的流媒体类型)
content-type:application/stream+json(或其他类似的流媒体类型)
此信息是通过观察 postman/curl 之间的 http 流量收集的
和简单的 spring webflux 服务。
有关这些 headers 及其值的完整说明:
流行的HTTP服务器或框架是如何使用HTTP协议实现从HTTP服务器到HTTP客户端的异步数据流的? (客户端可以是浏览器或 non-browser)
[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 表示对服务器和客户端有意义的个人数据 object。
只是强调一下,我不是在寻找流的实现(例如反应流、RxJava 等),而是 我想知道如何使用 HTTP 协议来实现这种异步数据流的详细信息(不是视频流,而是 json 流)。 例如,他们使用哪个 HTTP headers,使用什么样的连接等
基本上,这里感兴趣的 HTTP headers 是:
header-name:header-value(评论)
连接:keep-alive(保持连接打开)
transfer-encoding:分块(数据以一系列块的形式发送)
接受:application/stream+json(或其他类似的流媒体类型)
content-type:application/stream+json(或其他类似的流媒体类型)
此信息是通过观察 postman/curl 之间的 http 流量收集的 和简单的 spring webflux 服务。
有关这些 headers 及其值的完整说明: