标签:
1.帧的类型:
在二进制分帧的结构中,头部有8个字节(64Bit),其中有一个字节(8Bit)来标志帧的类型:
HTTP2.0规定了如下帧类型:
DATA: 用于传输HTTP消息体
HEADERS:用户传输关于流的额外的首部字段
PRIORITY:用户指定或者重新指定引用资源的优先级
RST_STRING:用于通知流的非正常终止
SETTINGS:用于通知两端通信方式的数据配置
PUSH_PROMISE:用于发出创建流和服务器引用资源的要约
PING:用于计算往返时间,执行“活性”检查
GOAWAY:用于通知对端停止在当前连接的创建流
WINDOW_UPDATE:用于针对个别流或个别连接实现流量控制
CONTINUATION:用于继续一系列首部块片段
1.1 建立新流
客户端通过发送HEADERS帧来创建新流,这个帧包含带有新流ID的公用首部、可选的31位优先级,以及一组HTTP键-值对首部。
服务器通过发送PUSH_PROMISE帧来发起推送流,这个帧与HEADERS帧等效,但它包含“要约流ID”,没有优先级。
注意:由于流的元数据与应用数据是单独发送的,因此客户端和服务器可以分别给它们设定不同的优先级。比如,“流量控制”的流优先级可以高一些,
但只将其应用给DATA帧
1.2 发送应用数据
创建新流并发送HTTP首部之后,接下来就是利用DATA帧发送应用数据。应用数据可以分成多个DATA帧,最后一帧要翻转首部的END_STREAM字段。
标签:
原文地址:http://www.cnblogs.com/liuyinlei/p/5449005.html