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()
default は 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
サーバーが1つのIPアドレスあたり1秒間に受け付ける最大リクエスト数を返します。
この制限は、クライアントの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)
QHttpServer のキープアライブタイムアウトとして、timeout を設定します。
キープアライブのタイムアウトは、アイドル状態の接続が閉じられるまでの保持時間を決定します。
デフォルトでは、タイムアウトは 15 秒に設定されています。
この関数は Qt 6.10 で導入されました。
keepAliveTimeout()も参照してください 。
[since 6.11] void QHttpServerConfiguration::setMaximumBodySize(qint64 maxSize)
maxSize を、サーバーが受け入れるリクエストボディの最大サイズとして設定します。この制限を超えた場合、QHttpServer はステータス 413「Content Too Large」で応答します。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(Too Many Requests)レスポンスで閉じられます。SSL接続の場合、制限を超過すると接続が閉じられます。
デフォルトでは、この機能は無効になっています。
この機能は Qt 6.12 で導入されました。
maximumConnectionsPerHost() およびQHttpServerResponder::StatusCodeも参照してください 。
[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldCount(qint64 maxSize)
maxSize を、サーバーがリクエストで受け入れるヘッダーフィールドの最大数として設定します。この制限を超えた場合、QHttpServer はステータス 431「Request Header Fields Too Large」で応答します。maxSize が -1 の場合、制限はありません。
デフォルト値は 128 です。
この関数は Qt 6.11 で導入されました。
maximumHeaderFieldCount() およびQHttpServerResponder::StatusCodeも参照してください 。
[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldSize(qint64 maxSize)
リクエストにおいて、サーバーが受け入れる単一のヘッダーフィールドの最大サイズをmaxSize に設定します。この制限を超えた場合、QHttpServer はステータスコード431「Request Header Fields Too Large」で応答します。maxSize が-1の場合、制限はありません。
デフォルト値は 48 KiB です。
この関数は Qt 6.11 で導入されました。
maximumHeaderFieldSize() およびQHttpServerResponder::StatusCodeも参照してください 。
[since 6.11] void QHttpServerConfiguration::setMaximumTotalHeaderSize(qint64 maxSize)
リクエストにおいて、サーバーが受け入れるヘッダーフィールドの合計サイズの上限をmaxSize に設定します。この制限を超えた場合、QHttpServer はステータス431「Request Header Fields Too Large」で応答します。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 アドレスごとに 1 秒あたり受け付ける最大リクエスト数として設定します。この制限を超えた場合、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.