帧大小

帧载荷的大小受接收者在 SETTINGS_MAX_FRAME_SIZE 设定的最大大小限制。值的范围为2^14(16384)至2^24-1 (16777215),包含。

所有的实现要必须能够接收并最低限度地处理长度最大在2^14字节的帧,外加9个字节的帧首部。当描述帧大小时,帧首部的大小不会被包含在内。

注意:某些帧类型,比如ING,会对允许的载荷数据的大小强加额外的限制。

如果一个帧超出了SETTINGS_MAX_FRAME_SIZE 定义的大小,超出了为帧类型定义的任何限制,或者太小以至于无法包含必要的帧数据,终端必须发送一个错误码 FRAME_SIZE_ERROR。可能改变整个连接状态的帧中的帧大小错误必须被当作一个连接错误;这包括所有携带首部块的帧(即 HEADERS,PUSH_PROMISE,和CONTINUATION,SETTINGS,和所有流标识符为0的帧。

终端没有义务用完帧中的所有的可用空间。响应能力可以通过使用比允许的最大大小小的帧来提升。在发送时间敏感的帧时发送大帧可能导致延时(比如 RST_STREAM,WINDOW_UPDATE,或 PRIORITY),如果传输由于一个大的帧而阻塞,则可能会影响性能。