你错误地得到了一些东西。
甲消息是一个或两个HEADER
帧(携带HTTP头),零个或多个 DATA帧,并且一个可选终端HEADER
帧(携带HTTP拖车)的组合。 你可以看看this section of RFC 7540的例子。 对于100 Continue
响应有一个特殊情况,可以从两个HEADERS
而不是一个开始。在以下我们可以忽略这种情况。
甲DATA
帧确实有一个流ID,因为所有帧共享this section of RFC 7540定义的帧报头。 6.1节中描述的仅仅是DATA
框架的主体。
A 消息是HTTP/2流的一半。消息表示HTTP请求或HTTP响应。
HTTP/2流是请求消息和响应消息的组合。 请注意,这不应与flag_end_stream
混淆,该信号表示由任一对端发送的特定流的最后一帧。
由浏览器执行的典型GET
请求随后将已(假设流ID是13):
- 一个
HEADERS
帧与ID = 13,flag_end_headers=true
和flag_end_stream=true
(一个GET
请求通常具有不体)
到GET
请求典型的响应届时将有:
- 一个
HEADERS
帧ID = 13和flag_end_headers=true
- 一个或多个
DATA
帧,全部ID = 13;最后的DATA
框架将有flag_end_stream=true
。
请注意,由于多路复用,帧可以交错;这意味着,如果你有两个并行的反应(比如为流13和流15),例如,你可以有这样的顺序:
HEADERS(13) HEADERS(15) DATA(15) DATA(13) DATA(13] DATA(15) DATA(15]
在托架]
意味着它流中的最后一帧。
我分析你的反应,知道我理解的概念!不够感谢你!干杯! – csnewb