QHttp2Configuration 类
QHttp2Configuration 类控制 HTTP/2 参数和设置。 更多...
头文件 | #include <QHttp2Configuration> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake | QT += network |
- 包括继承成员在内的所有成员列表
- QHttp2Configuration 是网络编程 API 和隐式共享类的组成部分。网络编程 API 和 隐式共享类。
注意:本类中所有函数都是重入。
公有函数
QHttp2Configuration() | |
QHttp2Configuration(const QHttp2Configuration &other) | |
QHttp2Configuration(QHttp2Configuration &&other) | |
~QHttp2Configuration() | |
bool | huffmanCompressionEnabled() const |
unsigned int | maxFrameSize() const |
bool | serverPushEnabled() const |
unsigned int | sessionReceiveWindowSize() const |
void | setHuffmanCompressionEnabled(bool enable) |
bool | setMaxFrameSize(unsigned int size) |
void | setServerPushEnabled(bool enable) |
bool | setSessionReceiveWindowSize(unsigned int size) |
bool | setStreamReceiveWindowSize(unsigned int size) |
unsigned int | streamReceiveWindowSize() const |
void | swap(QHttp2Configuration &other) |
QHttp2Configuration & | operator=(const QHttp2Configuration &other) |
QHttp2Configuration & | operator=(QHttp2Configuration &&other) |
相关非成员
bool | operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) |
bool | operator==(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 会话)之前,必须设置配置。
另请参阅 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)
如果 lhs 和 rhs 不具有相同的 HTTP/2 参数集,则返回 true
。
[无异常]
bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)
如果 lhs 和 rhs 具有相同的 HTTP/2 参数集,则返回 true
。
© 2024 The Qt Company Ltd. 本文档中包括的贡献的版权属于其各自的拥有者。本文档是根据自由软件开发基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应的标志是芬兰及/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。