QHttpServerConfiguration Class
QHttpServerConfiguration 类用于控制服务器参数。更多内容...
| 标题: | #include <QHttpServerConfiguration> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
| qmake: | QT += httpserver |
| 自: | Qt 6.9 |
公共函数
| QHttpServerConfiguration() | |
| QHttpServerConfiguration(const QHttpServerConfiguration &other) | |
| QHttpServerConfiguration(QHttpServerConfiguration &&other) | |
| ~QHttpServerConfiguration() | |
(since 6.10) QSpan<const std::pair<QHostAddress, int>> | blacklist() const |
(since 6.10) std::chrono::seconds | keepAliveTimeout() const |
(since 6.11) qint64 | maximumBodySize() const |
(since 6.12) quint32 | maximumConnections() const |
(since 6.12) quint32 | maximumConnectionsPerHost() const |
(since 6.11) qint64 | maximumHeaderFieldCount() const |
(since 6.11) qint64 | maximumHeaderFieldSize() const |
(since 6.11) qint64 | maximumTotalHeaderSize() const |
(since 6.11) qint64 | maximumUrlSize() const |
| quint32 | rateLimitPerSecond() const |
(since 6.10) void | setBlacklist(QSpan<const std::pair<QHostAddress, int>> subnetList) |
(since 6.10) void | setKeepAliveTimeout(std::chrono::seconds timeout) |
(since 6.11) void | setMaximumBodySize(qint64 maxSize) |
(since 6.12) void | setMaximumConnections(quint32 maxConnections) |
(since 6.12) void | setMaximumConnectionsPerHost(quint32 maxPerHost) |
(since 6.11) void | setMaximumHeaderFieldCount(qint64 maxSize) |
(since 6.11) void | setMaximumHeaderFieldSize(qint64 maxSize) |
(since 6.11) void | setMaximumTotalHeaderSize(qint64 maxSize) |
(since 6.11) void | setMaximumUrlSize(qint64 maxSize) |
| void | setRateLimitPerSecond(quint32 maxRequests) |
(since 6.10) void | setWhitelist(QSpan<const std::pair<QHostAddress, int>> subnetList) |
| void | swap(QHttpServerConfiguration &other) |
(since 6.10) QSpan<const std::pair<QHostAddress, int>> | whitelist() const |
| QHttpServerConfiguration & | operator=(QHttpServerConfiguration &&other) |
| QHttpServerConfiguration & | operator=(const QHttpServerConfiguration &other) |
相关的非成员
| bool | operator!=(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs) |
| bool | operator==(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs) |
成员函数文档
QHttpServerConfiguration::QHttpServerConfiguration()
默认情况下会构建一个 QHttpServerConfiguration 对象。
此类配置具有以下值:
- 速率限制已禁用。
- 最大连接数已禁用。
- 每台主机的最大连接数已禁用。
- 保持活动超时设置为 15 秒。
- 白名单为空。
- 黑名单为空。
- URL 最大大小为 64 KiB。
- 总头部大小上限为 64 KiB。
- 每个标头字段的最大大小为 48 KiB。
- 标头字段的最大数量为 128 个。
- 正文最大大小为 32 MiB。
QHttpServerConfiguration::QHttpServerConfiguration(const QHttpServerConfiguration &other)
复制并构建此 QHttpServerConfiguration 对象。
[constexpr noexcept default] QHttpServerConfiguration::QHttpServerConfiguration(QHttpServerConfiguration &&other)
将此 QHttpServerConfiguration 从other
[noexcept] QHttpServerConfiguration::~QHttpServerConfiguration()
析构函数。
[since 6.10] QSpan<const std::pair<QHostAddress, int>> QHttpServerConfiguration::blacklist() const
返回被QHttpServer 拒绝访问的子网黑名单。
该函数在 Qt 6.10 中引入。
另请参阅 setBlacklist()。
[since 6.10] std::chrono::seconds QHttpServerConfiguration::keepAliveTimeout() const
返回QHttpServer 所使用的保持连接超时时间。这是空闲连接在超时前可以保持打开状态的时间长度。
该函数于 Qt 6.10 中引入。
另请参阅 setKeepAliveTimeout()。
[since 6.11] qint64 QHttpServerConfiguration::maximumBodySize() const
返回服务器可接受的传入正文的最大大小。
该函数在 Qt 6.11 中引入。
另请参阅 setMaximumBodySize()。
[since 6.12] quint32 QHttpServerConfiguration::maximumConnections() const
返回服务器总共接受的最大并发连接数。
如果总连接限制已被禁用,则返回 0。
该函数在 Qt 6.12 中引入。
另请参阅 setMaximumConnections()。
[since 6.12] quint32 QHttpServerConfiguration::maximumConnectionsPerHost() const
返回服务器为每个主机接受的最大并发连接数。主机通过传入 TCP 连接的 IP 地址进行识别。
如果禁用了按主机限制连接数的功能,则返回 0。
该函数在 Qt 6.12 中引入。
另请参阅 setMaximumConnectionsPerHost()。
[since 6.11] qint64 QHttpServerConfiguration::maximumHeaderFieldCount() const
返回服务器可接受的入站标头字段的最大数量。
该函数自 Qt 6.11 起引入。
另请参阅 setMaximumHeaderFieldCount()。
[since 6.11] qint64 QHttpServerConfiguration::maximumHeaderFieldSize() const
返回服务器接受的每个传入标头字段的最大大小。
该函数在 Qt 6.11 中引入。
另请参阅 setMaximumHeaderFieldSize()。
[since 6.11] qint64 QHttpServerConfiguration::maximumTotalHeaderSize() const
返回服务器接受的总入站头部大小上限。
该函数在 Qt 6.11 中引入。
另请参阅 setMaximumTotalHeaderSize()。
[since 6.11] qint64 QHttpServerConfiguration::maximumUrlSize() const
返回服务器支持的最大 URL 长度。
该函数在 Qt 6.11 中引入。
另请参阅 setMaximumUrlSize()。
quint32 QHttpServerConfiguration::rateLimitPerSecond() const
返回服务器接受的每个 IP 地址每秒最大入站请求数。
此限制对每个客户端 IP 地址单独应用。如果速率限制已禁用,则返回 0。
另请参阅 setRateLimitPerSecond()。
[since 6.10] void QHttpServerConfiguration::setBlacklist(QSpan<const std::pair<QHostAddress, int>> subnetList)
将subnetList 设置为子网黑名单。
该列表中的 IP 地址将被QHttpServer 拒绝访问。只有当白名单为空时,黑名单才生效。
默认情况下,黑名单为空。
此函数在 Qt 6.10 中引入。
另请参阅 blacklist()、setWhitelist() 和QHostAddress::parseSubnet()。
[since 6.10] void QHttpServerConfiguration::setKeepAliveTimeout(std::chrono::seconds timeout)
将timeout 设置为QHttpServer 的保持活动超时值。
保持活动超时时间决定了闲置连接在关闭前将保持打开状态多长时间。
默认情况下,超时时间设置为 15 秒。
此函数在 Qt 6.10 中引入。
另请参阅 keepAliveTimeout()。
[since 6.11] void QHttpServerConfiguration::setMaximumBodySize(qint64 maxSize)
将maxSize 设置为服务器可接受的请求正文最大大小。如果超过此限制,QHttpServer 将返回状态码413(内容过大)。如果maxSize 的值为-1,则不设限制。
默认值为 32 MiB。
该函数在 Qt 6.11 中引入。
另请参阅 maximumBodySize() 和QHttpServerResponder::StatusCode 。
[since 6.12] void QHttpServerConfiguration::setMaximumConnections(quint32 maxConnections)
设置服务器可接受的并发连接总数上限(maxConnections )。若达到该上限,服务器将拒绝新的连接。对于HTTP/1连接,QHttpServer 将返回QHttpServerResponder::StatusCode::TooManyRequests 并关闭连接。
如果将maxConnections 设置为0,则总连接限制将被禁用。
默认情况下,此限制处于禁用状态。
该函数在 Qt 6.12 中引入。
另请参阅 maximumConnections() 和QHttpServerResponder::StatusCode 。
[since 6.12] void QHttpServerConfiguration::setMaximumConnectionsPerHost(quint32 maxPerHost)
设置QHttpServer 接受的来自每个主机的maxPerHost 并发连接数上限。如果超过该限制,QHttpServer 将返回QHttpServerResponder::StatusCode::TooManyRequests 。
若将maxPerHost 设置为 0,则禁用每主机连接限制。当在反向代理后运行时,应采用此设置,因为此时所有传入套接字看起来都像是来自反向代理。
当达到每主机连接限制时,HTTP/1 连接将关闭并返回 429(请求过多)响应。对于 SSL 连接,超过限制时将关闭连接。
默认情况下,此功能处于禁用状态。
此功能于 Qt 6.12 中引入。
另请参阅 maximumConnectionsPerHost() 和QHttpServerResponder::StatusCode 。
[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldCount(qint64 maxSize)
将maxSize 设置为服务器在请求中接受的标头字段最大数量。如果超过此限制,QHttpServer 将返回状态码431“请求标头字段过大”。如果maxSize 的值为-1,则不设限制。
默认值为 128。
该函数在 Qt 6.11 中引入。
另请参阅 maximumHeaderFieldCount() 和QHttpServerResponder::StatusCode 。
[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldSize(qint64 maxSize)
将maxSize 设置为服务器在请求中接受的任何单个请求头字段的最大大小。如果超过此限制,QHttpServer 将返回状态码431(请求头字段过大)。如果maxSize 的值为-1,则不设限制。
默认值为 48 KiB。
该函数自 Qt 6.11 起引入。
另请参阅 maximumHeaderFieldSize() 和QHttpServerResponder::StatusCode 。
[since 6.11] void QHttpServerConfiguration::setMaximumTotalHeaderSize(qint64 maxSize)
将maxSize 设置为服务器在请求中可接受的请求头字段的最大总大小。如果超过此限制,QHttpServer 将返回状态码431“请求头字段过大”。如果maxSize 的值为-1,则不设限制。
默认值为 64 KiB。
该函数自 Qt 6.11 起引入。
另请参阅 maximumTotalHeaderSize() 和QHttpServerResponder::StatusCode 。
[since 6.11] void QHttpServerConfiguration::setMaximumUrlSize(qint64 maxSize)
将maxSize 设置为服务器可接受的请求URL的最大长度。如果超过此限制,QHttpServer 将返回状态码414(Request-URI Too Long)。如果maxSize 为-1,则不设限制。
默认值为 64 KiB。
该函数在 Qt 6.11 中引入。
另请参阅 maximumUrlSize() 和QHttpServerResponder::StatusCode 。
void QHttpServerConfiguration::setRateLimitPerSecond(quint32 maxRequests)
将maxRequests 设置为QHttpServer 每秒接受的每个IP地址的最大入站请求数。如果超过此限制,QHttpServer 将返回QHttpServerResponder::StatusCode::TooManyRequests 。
此限制对每个客户端 IP 地址单独应用。值为 0 时,将禁用速率限制。
默认情况下,速率限制处于禁用状态。
另请参阅 rateLimitPerSecond() 和QHttpServerResponder::StatusCode 。
[since 6.10] void QHttpServerConfiguration::setWhitelist(QSpan<const std::pair<QHostAddress, int>> subnetList)
将subnetList 设置为允许子网的白名单。
当列表不为空时,QHttpServer 仅允许列表中的 IP 地址。白名单的优先级高于黑名单。
每个子网由以下两部分组成:
- 类型为QHostAddress 的基 IP 地址。
- 一个类型为 int 的 CIDR 前缀长度,用于定义子网掩码。
若仅允许特定的 IP 地址,请为 IPv4 设置前缀长度为 32(例如:"192.168.1.100/32" ),或为 IPv6 设置前缀长度为 128(例如:"2001:db8::1/128" )。
默认情况下,白名单为空。
此函数在 Qt 6.10 中引入。
另请参见 whitelist()、setBlacklist() 和QHostAddress::parseSubnet()。
[noexcept] void QHttpServerConfiguration::swap(QHttpServerConfiguration &other)
将此配置与other 互换。此操作非常快速,且绝不会失败。
[since 6.10] QSpan<const std::pair<QHostAddress, int>> QHttpServerConfiguration::whitelist() const
返回QHttpServer 允许的子网白名单。
当白名单不为空时,仅允许来自返回子网中的地址。白名单优先于黑名单。
默认情况下,白名单为空。
该函数在 Qt 6.10 中引入。
另请参阅 setWhitelist()。
[noexcept] QHttpServerConfiguration &QHttpServerConfiguration::operator=(QHttpServerConfiguration &&other)
将other 移动并赋值给QHttpServerConfiguration 。
QHttpServerConfiguration &QHttpServerConfiguration::operator=(const QHttpServerConfiguration &other)
将other 复制并赋值给此处的QHttpServerConfiguration 。
相关非会员
[noexcept] bool operator!=(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs)
如果lhs 和rhs 的配置参数集不一致,则返回true 。
[noexcept] bool operator==(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs)
如果 `lhs ` 和 `rhs ` 具有相同的配置参数集,则返回 `true `。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.