Auf dieser Seite

QHttpServerConfiguration Class

Die Klasse „QHttpServerConfiguration“ steuert die Serverparameter. Mehr...

Kopfzeile: #include <QHttpServerConfiguration>
CMake: find_package(Qt6 REQUIRED COMPONENTS HttpServer)
target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
qmake: QT += httpserver
Seit: Qt 6.9

Öffentliche Funktionen

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)

Ausführliche Beschreibung

Dokumentation zu den Mitgliedsfunktionen

QHttpServerConfiguration::QHttpServerConfiguration()

Standardmäßig wird ein QHttpServerConfiguration-Objekt erstellt.

Eine solche Konfiguration weist folgende Werte auf:

  • Die Ratenbegrenzung ist deaktiviert.
  • Die maximale Anzahl an Verbindungen ist deaktiviert.
  • Die maximale Anzahl an Verbindungen pro Host ist deaktiviert.
  • Das Keep-Alive-Timeout ist auf 15 Sekunden festgelegt.
  • Die Whitelist ist leer.
  • Die Blacklist ist leer.
  • Die maximale URL-Größe beträgt 64 KiB.
  • Die maximale Gesamtgröße der Header beträgt 64 KiB.
  • Die maximale Größe eines einzelnen Header-Feldes beträgt 48 KiB.
  • Die maximale Anzahl von Header-Feldern beträgt 128.
  • Die maximale Größe des Hauptteils beträgt 32 MiB.

QHttpServerConfiguration::QHttpServerConfiguration(const QHttpServerConfiguration &other)

Erstellt eine Kopie dieser `QHttpServerConfiguration`.

[constexpr noexcept default] QHttpServerConfiguration::QHttpServerConfiguration(QHttpServerConfiguration &&other)

Erstellt diese `QHttpServerConfiguration` mithilfe von other

[noexcept] QHttpServerConfiguration::~QHttpServerConfiguration()

Destruktor.

[since 6.10] QSpan<const std::pair<QHostAddress, int>> QHttpServerConfiguration::blacklist() const

Gibt die Blacklist der Subnetze zurück, denen der Zugriff von QHttpServer verweigert wird.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch setBlacklist().

[since 6.10] std::chrono::seconds QHttpServerConfiguration::keepAliveTimeout() const

Gibt das von ` QHttpServer` verwendete Keep-Alive-Timeout zurück. Dies ist die Zeitspanne, die eine inaktive Verbindung offen bleiben darf, bevor sie aufgrund des Timeouts geschlossen wird.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch ` setKeepAliveTimeout()`.

[since 6.11] qint64 QHttpServerConfiguration::maximumBodySize() const

Gibt die maximale Größe des vom Server akzeptierten eingehenden Hauptteils zurück.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch ` setMaximumBodySize()`.

[since 6.12] quint32 QHttpServerConfiguration::maximumConnections() const

Gibt die maximale Gesamtzahl der vom Server akzeptierten gleichzeitigen Verbindungen zurück.

Gibt 0 zurück, wenn das Gesamtverbindungslimit deaktiviert ist.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch ` setMaximumConnections()`.

[since 6.12] quint32 QHttpServerConfiguration::maximumConnectionsPerHost() const

Gibt die maximale Anzahl gleichzeitiger Verbindungen pro Host zurück, die vom Server akzeptiert werden. Der Host wird anhand der IP-Adresse der eingehenden TCP-Verbindung identifiziert.

Gibt 0 zurück, wenn die Verbindungsbegrenzung pro Host deaktiviert ist.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch ` setMaximumConnectionsPerHost()`.

[since 6.11] qint64 QHttpServerConfiguration::maximumHeaderFieldCount() const

Gibt die maximale Anzahl der vom Server akzeptierten eingehenden Header-Felder zurück.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch ` setMaximumHeaderFieldCount()`.

[since 6.11] qint64 QHttpServerConfiguration::maximumHeaderFieldSize() const

Gibt die maximale Größe jedes vom Server akzeptierten eingehenden Header-Feldes zurück.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch ` setMaximumHeaderFieldSize()`.

[since 6.11] qint64 QHttpServerConfiguration::maximumTotalHeaderSize() const

Gibt die maximale Größe der gesamten vom Server akzeptierten eingehenden Header zurück.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch ` setMaximumTotalHeaderSize()`.

[since 6.11] qint64 QHttpServerConfiguration::maximumUrlSize() const

Gibt die maximale Länge der vom Server akzeptierten URL zurück.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch ` setMaximumUrlSize()`.

quint32 QHttpServerConfiguration::rateLimitPerSecond() const

Gibt die maximale Anzahl eingehender Anfragen pro Sekunde und IP-Adresse zurück, die vom Server akzeptiert werden.

Diese Begrenzung gilt separat für jede Client-IP-Adresse. Gibt 0 zurück, wenn die Ratenbegrenzung deaktiviert ist.

Siehe auch ` setRateLimitPerSecond()`.

[since 6.10] void QHttpServerConfiguration::setBlacklist(QSpan<const std::pair<QHostAddress, int>> subnetList)

Legt subnetList als Blacklist für Subnetze fest.

IP-Adressen in dieser Liste erhalten keinen Zugriff auf QHttpServer. Die Blacklist ist nur aktiv, wenn die Whitelist leer ist.

Standardmäßig ist die Blacklist leer.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch „ blacklist()“, „ setWhitelist()“ und „ QHostAddress::parseSubnet()“.

[since 6.10] void QHttpServerConfiguration::setKeepAliveTimeout(std::chrono::seconds timeout)

Legt „ timeout “ als Keep-Alive-Timeout für „ QHttpServer “ fest.

Das Keep-Alive-Timeout legt fest, wie lange eine inaktive Verbindung offen gehalten wird, bevor sie geschlossen wird.

Standardmäßig ist das Timeout auf 15 Sekunden festgelegt.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch ` keepAliveTimeout()`.

[since 6.11] void QHttpServerConfiguration::setMaximumBodySize(qint64 maxSize)

Legt „ maxSize “ als maximale Größe des Request-Bodys fest, die der Server akzeptiert. Wird dieses Limit überschritten, antwortet QHttpServer mit dem Status 413 „Content Too Large“. Ist „ maxSize “ auf -1 gesetzt, gibt es kein Limit.

Der Standardwert beträgt 32 MiB.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch „ maximumBodySize()“ und „ QHttpServerResponder::StatusCode “.

[since 6.12] void QHttpServerConfiguration::setMaximumConnections(quint32 maxConnections)

Legt die Obergrenze für „ maxConnections “ fest, d. h. die Gesamtzahl der gleichzeitigen Verbindungen, die vom Server akzeptiert werden. Ist diese Obergrenze erreicht, lehnt der Server neue Verbindungen ab. Bei HTTP/1-Verbindungen antwortet QHttpServer mit „ QHttpServerResponder::StatusCode::TooManyRequests “ und schließt die Verbindung.

Wenn „ maxConnections “ auf 0 gesetzt ist, ist die Begrenzung der Gesamtzahl der Verbindungen deaktiviert.

Standardmäßig ist diese Begrenzung deaktiviert.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch maximumConnections() und QHttpServerResponder::StatusCode.

[since 6.12] void QHttpServerConfiguration::setMaximumConnectionsPerHost(quint32 maxPerHost)

Legt die Obergrenze für die Anzahl der gleichzeitigen Verbindungen pro Host fest, die von QHttpServer akzeptiert werden ( maxPerHost ). Wird diese Grenze überschritten, antwortet QHttpServer mit dem Fehler „ QHttpServerResponder::StatusCode::TooManyRequests “.

Wenn maxPerHost auf 0 gesetzt ist, wird die Verbindungsbegrenzung pro Host deaktiviert. Dies sollte erfolgen, wenn der Server hinter einem Reverse-Proxy betrieben wird, da alle eingehenden Sockets scheinbar vom Reverse-Proxy stammen.

Wenn das Verbindungslimit pro Host erreicht ist, werden HTTP/1-Verbindungen mit einer 429-Antwort (Too Many Requests) geschlossen. Bei SSL-Verbindungen wird die Verbindung geschlossen, sobald das Limit überschritten wird.

Standardmäßig ist diese Funktion deaktiviert.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch maximumConnectionsPerHost() und QHttpServerResponder::StatusCode.

[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldCount(qint64 maxSize)

Legt „ maxSize “ als maximale Anzahl der Header-Felder fest, die der Server in einer Anfrage akzeptiert. Wird diese Grenze überschritten, antwortet QHttpServer mit dem Status 431 „Request Header Fields Too Large“. Ist „ maxSize “ auf -1 gesetzt, gibt es keine Begrenzung.

Der Standardwert ist 128.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch „ maximumHeaderFieldCount()“ und „ QHttpServerResponder::StatusCode “.

[since 6.11] void QHttpServerConfiguration::setMaximumHeaderFieldSize(qint64 maxSize)

Legt „ maxSize “ als maximale Größe für jedes einzelne Header-Feld fest, das der Server in einer Anfrage akzeptiert. Wird diese Grenze überschritten, antwortet QHttpServer mit dem Status 431 „Request Header Fields Too Large“. Ist „ maxSize “ auf -1 gesetzt, gibt es keine Begrenzung.

Der Standardwert beträgt 48 KiB.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch „ maximumHeaderFieldSize()“ und „ QHttpServerResponder::StatusCode “.

[since 6.11] void QHttpServerConfiguration::setMaximumTotalHeaderSize(qint64 maxSize)

Legt „ maxSize “ als maximale Gesamtgröße der Header-Felder fest, die der Server in einer Anfrage akzeptiert. Wird das Limit überschritten, antwortet QHttpServer mit dem Status 431 „Request Header Fields Too Large“. Ist „ maxSize “ auf -1 gesetzt, gibt es kein Limit.

Der Standardwert beträgt 64 KiB.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch „ maximumTotalHeaderSize()“ und „ QHttpServerResponder::StatusCode “.

[since 6.11] void QHttpServerConfiguration::setMaximumUrlSize(qint64 maxSize)

Legt „ maxSize “ als maximale Länge der Anfrage-URL fest, die der Server akzeptiert. Wird diese Grenze überschritten, antwortet QHttpServer mit dem Status 414 „Request-URI Too Long“. Ist „ maxSize “ auf -1 gesetzt, gibt es keine Begrenzung.

Der Standardwert beträgt 64 KiB.

Diese Funktion wurde in Qt 6.11 eingeführt.

Siehe auch „ maximumUrlSize()“ und „ QHttpServerResponder::StatusCode “.

void QHttpServerConfiguration::setRateLimitPerSecond(quint32 maxRequests)

Legt „ maxRequests “ als maximale Anzahl eingehender Anfragen pro Sekunde und IP-Adresse fest, die von QHttpServer akzeptiert werden. Wird das Limit überschritten, antwortet QHttpServer mit dem Fehler „ QHttpServerResponder::StatusCode::TooManyRequests “.

Dieses Limit gilt separat für jede Client-IP-Adresse. Der Wert 0 deaktiviert die Ratenbegrenzung.

Standardmäßig ist die Ratenbegrenzung deaktiviert.

Siehe auch rateLimitPerSecond() und QHttpServerResponder::StatusCode.

[since 6.10] void QHttpServerConfiguration::setWhitelist(QSpan<const std::pair<QHostAddress, int>> subnetList)

Legt „ subnetList “ als Whitelist der zulässigen Subnetze fest.

Ist die Liste nicht leer, werden von QHttpServer nur IP-Adressen aus dieser Liste zugelassen. Die Whitelist hat Vorrang vor der Blacklist.

Jedes Subnetz wird als Paar dargestellt, bestehend aus:

  • einer Basis-IP-Adresse vom Typ „ QHostAddress “.
  • einer CIDR-Präfixlänge vom Typ „int“, die die Subnetzmaske definiert.

Um nur eine bestimmte IP-Adresse zuzulassen, verwenden Sie eine Präfixlänge von 32 für IPv4 (z. B. "192.168.1.100/32") oder 128 für IPv6 (z. B. "2001:db8::1/128").

Standardmäßig ist die Whitelist leer.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch whitelist(), setBlacklist() und QHostAddress::parseSubnet().

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

Tauscht diese Konfiguration gegen „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[since 6.10] QSpan<const std::pair<QHostAddress, int>> QHttpServerConfiguration::whitelist() const

Gibt die Whitelist der von QHttpServer zugelassenen Subnetze zurück.

Wenn die Whitelist nicht leer ist, sind nur Adressen in den zurückgegebenen Subnetzen zulässig. Die Whitelist hat Vorrang vor der Blacklist.

Standardmäßig ist die Whitelist leer.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch ` setWhitelist()`.

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

Weist „ other “ diesem „ QHttpServerConfiguration “ zu.

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

Weist „ other “ diesem „ QHttpServerConfiguration “ zu.

Verwandte Nichtmitglieder

[noexcept] bool operator!=(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs)

Gibt „ true “ zurück, wenn „ lhs “ und „ rhs “ nicht dieselben Konfigurationsparameter enthalten.

[noexcept] bool operator==(const QHttpServerConfiguration &lhs, const QHttpServerConfiguration &rhs)

Gibt „ true “ zurück, wenn „ lhs “ und „ rhs “ denselben Satz an Konfigurationsparametern aufweisen.

© 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.