QHttp2Configuration 类

QHttp2Configuration 类控制 HTTP/2 参数和设置。 更多...

头文件 #include <QHttp2Configuration>
CMakefind_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmakeQT += network

注意:本类中所有函数都是重入

公有函数

QHttp2Configuration()
QHttp2Configuration(const QHttp2Configuration &other)
QHttp2Configuration(QHttp2Configuration &&other)
~QHttp2Configuration()
boolhuffmanCompressionEnabled() const
unsigned intmaxFrameSize() const
boolserverPushEnabled() const
unsigned intsessionReceiveWindowSize() const
voidsetHuffmanCompressionEnabled(bool enable)
boolsetMaxFrameSize(unsigned int size)
voidsetServerPushEnabled(bool enable)
boolsetSessionReceiveWindowSize(unsigned int size)
boolsetStreamReceiveWindowSize(unsigned int size)
unsigned intstreamReceiveWindowSize() const
voidswap(QHttp2Configuration &other)
QHttp2Configuration &operator=(const QHttp2Configuration &other)
QHttp2Configuration &operator=(QHttp2Configuration &&other)
booloperator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)
booloperator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

详细描述

QHttp2Configuration 控制当启用 HTTP/2 协议时,QNetworkAccessManager 发送请求和处理响应所使用的 HTTP/2 参数和设置。

QHttp2Configuration 当前支持的 HTTP/2 参数包括

  • 连接级别的会话窗口大小,需要在作为标识符 0 的流上发送'WINDOW_UPDATE'帧到远端时发送。
  • 对于流级别的流量控制,流的接收窗口大小。在初始的 SETTINGS 帧中以 'SETTINGS_INITIAL_WINDOW_SIZE' 参数发送,并在需要时,由 QNetworkAccessManager 打开的流将发送 'WINDOW_UPDATE' 帧。
  • 最大帧大小。此参数限制来自远程对等的帧的最大有效载荷。由 QNetworkAccessManager 作为初始 'SETTINGS' 帧中的 'SETTINGS_MAX_FRAME_SIZE' 参数发送。
  • 服务器推送。允许启用或禁用服务器推送。在初始的 'SETTINGS' 帧中以 'SETTINGS_ENABLE_PUSH' 参数发送。

QHttp2Configuration 类还控制是否使用 Huffman 编码(HPACK)作为额外的字符串压缩算法。

注意: 在将第一个请求发送到给定的主机(因此建立一个 HTTP/2 会话)之前,必须设置配置。

注意: 有关流量控制、服务器推送和 'SETTINGS' 的详细信息,请参阅 RFC 7540。HPACK 压缩算法的不同模式和参数在 RFC 7541 中描述。

另请参阅 QNetworkRequest::setHttp2Configuration(),QNetworkRequest::http2Configuration(),和 QNetworkAccessManager

成员函数文档

QHttp2Configuration::QHttp2Configuration()

默认构造一个 QHttp2Configuration 对象。

此类配置具有以下值

  • 服务器推送已禁用
  • Huffman 字符串压缩已启用
  • 连接级别的流量控制窗口大小为 65535 个八位字节
  • 流级别的流量控制窗口大小为 65535 个八位字节
  • 帧大小为 16384 个八位字节

QHttp2Configuration::QHttp2Configuration(const QHttp2Configuration &other)

复制构造这个 QHttp2Configuration。

[noexcept] QHttp2Configuration::QHttp2Configuration(QHttp2Configuration &&other)

other 移动构造这个 QHttp2Configuration。

[noexcept] QHttp2Configuration::~QHttp2Configuration()

析构函数。

bool QHttp2Configuration::huffmanCompressionEnabled() const

如果 HPACK 中的 Huffman 编码启用,则返回 true

另请参阅 setHuffmanCompressionEnabled

unsigned int QHttp2Configuration::maxFrameSize() const

返回 HTTP/2 帧可以具有的最大有效载荷大小。默认(初始)值是 16384 个八位字节。

另请参阅 setMaxFrameSize

bool QHttp2Configuration::serverPushEnabled() const

如果启用了服务器推送,则返回 true。

注意: 默认情况下,QNetworkAccessManager 通过 'SETTINGS' 帧禁用服务器推送。

另请参阅 setServerPushEnabled

unsigned int QHttp2Configuration::sessionReceiveWindowSize() const

返回连接级别的流量控制窗口大小。QNetworkAccessManager 将使用的默认值是 2147483647 个八位字节。

另请参阅 setSessionReceiveWindowSize

void QHttp2Configuration::setHuffmanCompressionEnabled(bool enable)

如果 enable 参数为 true,将使用 Huffman 编码进一步压缩字符串。默认启用。

注意:此参数仅影响 QNetworkAccessManager 发送的 'HEADERS' 帧。

另请参阅:huffmanCompressionEnabled

bool QHttp2Configuration::setMaxFrameSize(unsigned int size)

设置 QNetworkAccessManager 在发送其初始 SETTINGS 帧时对服务器广告的最大帧大小。

注意:虽然该 size 需要在 16384 到 16777215 之间,但承载有效负载的帧的实际有效负载大小可能小于 16384。

成功返回 true,否则返回 false

另请参阅:maxFrameSize

void QHttp2Configuration::setServerPushEnabled(bool enable)

如果 enable 参数为 true,远程服务器可以潜在地使用服务器推送提前发送响应。

另请参阅:serverPushEnabled

bool QHttp2Configuration::setSessionReceiveWindowSize(unsigned int size)

设置连接级别的流控窗口大小。大小 size 不能为 0,且不能超过 2147483647 字节。

成功返回 true,否则返回 false

另请参阅:sessionReceiveWindowSize

bool QHttp2Configuration::setStreamReceiveWindowSize(unsigned int size)

设置流级别的流控窗口大小。大小 size 不能为 0,且不能超过 2147483647 字节。

成功返回 true,否则返回 false

另请参阅:streamReceiveWindowSize

unsigned int QHttp2Configuration::streamReceiveWindowSize() const

返回流级别流控的窗口大小。默认值 QNetworkAccessManager 将使用的是 214748364 字节(见 RFC 7540)。

另请参阅:setStreamReceiveWindowSize

[noexcept] void QHttp2Configuration::swap(QHttp2Configuration &other)

与此配置交换 other 配置。

QHttp2Configuration &QHttp2Configuration::operator=(const QHttp2Configuration &other)

other 复制分配给此 QHttp2Configuration

[noexcept] QHttp2Configuration &QHttp2Configuration::operator=(QHttp2Configuration &&other)

other 移动分配给此 QHttp2Configuration

相关非成员

[无异常] bool operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

如果 lhsrhs 不具有相同的 HTTP/2 参数集,则返回 true

[无异常] bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

如果 lhsrhs 具有相同的 HTTP/2 参数集,则返回 true

© 2024 The Qt Company Ltd. 本文档中包括的贡献的版权属于其各自的拥有者。本文档是根据自由软件开发基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应的标志是芬兰及/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。