QNetworkCookie Class
Die Klasse „QNetworkCookie“ enthält ein Netzwerk-Cookie. Mehr...
| Header: | #include <QNetworkCookie> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QNetworkCookie gehört zu den implizit gemeinsam genutzten Klassen.
Öffentliche Typen
| enum | RawForm { NameAndValueOnly, Full } |
(since 6.1) enum class | SameSite { Default, None, Lax, Strict } |
Öffentliche Funktionen
| QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray()) | |
| QNetworkCookie(const QNetworkCookie &other) | |
| ~QNetworkCookie() | |
| QString | domain() const |
| QDateTime | expirationDate() const |
| bool | hasSameIdentifier(const QNetworkCookie &other) const |
| bool | isHttpOnly() const |
| bool | isSecure() const |
| bool | isSessionCookie() const |
| QByteArray | name() const |
| void | normalize(const QUrl &url) |
| QString | path() const |
(since 6.1) QNetworkCookie::SameSite | sameSitePolicy() const |
| void | setDomain(const QString &domain) |
| void | setExpirationDate(const QDateTime &date) |
| void | setHttpOnly(bool enable) |
| void | setName(const QByteArray &cookieName) |
| void | setPath(const QString &path) |
(since 6.1) void | setSameSitePolicy(QNetworkCookie::SameSite sameSite) |
| void | setSecure(bool enable) |
| void | setValue(const QByteArray &value) |
| void | swap(QNetworkCookie &other) |
| QByteArray | toRawForm(QNetworkCookie::RawForm form = Full) const |
| QByteArray | value() const |
| bool | operator!=(const QNetworkCookie &other) const |
| QNetworkCookie & | operator=(const QNetworkCookie &other) |
| bool | operator==(const QNetworkCookie &other) const |
Statische öffentliche Mitglieder
| QList<QNetworkCookie> | parseCookies(QByteArrayView cookieString) |
Ausführliche Beschreibung
Cookies sind kleine Informationshäppchen, die zustandslose Protokolle wie HTTP verwenden, um bestimmte Informationen über mehrere Anfragen hinweg beizubehalten.
Ein Cookie wird von einem Remote-Server gesetzt, wenn dieser auf eine Anfrage antwortet, und er erwartet, dass dasselbe Cookie bei weiteren Anfragen zurückgesendet wird.
QNetworkCookie enthält ein solches Cookie, wie es vom Netzwerk empfangen wurde. Ein Cookie hat einen Namen und einen Wert, die für die Anwendung jedoch undurchsichtig sind (das heißt, die darin gespeicherten Informationen haben für die Anwendung keine Bedeutung). Einem Cookie sind ein Pfadname und eine Domäne zugeordnet, die angeben, wann das Cookie erneut an den Server gesendet werden soll.
Ein Cookie kann außerdem ein Ablaufdatum haben, das seine Gültigkeit angibt. Ist kein Ablaufdatum vorhanden, gilt das Cookie als „Session-Cookie“ und sollte beim Beenden der Anwendung (oder wenn deren Sitzungskonzept beendet ist) verworfen werden.
QNetworkCookie bietet die Möglichkeit, ein Cookie aus dem HTTP-Header-Format mithilfe der Funktion ` QNetworkCookie::parseCookies()` zu parsen. Wenn das Cookie jedoch in einem ` QNetworkReply` empfangen wird, ist es bereits geparst.
Diese Klasse implementiert Cookies gemäß der ursprünglichen Cookie-Spezifikation von Netscape, die der RFC-2109 -Spezifikation in gewisser Weise ähnelt, ergänzt um die Erweiterung „HttpOnly“. Die neuere RFC-2965 -Spezifikation (die den Set-Cookie2-Header verwendet) wird nicht unterstützt.
Siehe auch QNetworkCookieJar, QNetworkRequest und QNetworkReply.
Dokumentation zum Mitgliedstyp
enum QNetworkCookie::RawForm
Diese Enumeration wird zusammen mit der Funktion ` toRawForm()` verwendet, um festzulegen, welche Form eines Cookies zurückgegeben werden soll.
| Konstante | Wert | Beschreibung |
|---|---|---|
QNetworkCookie::NameAndValueOnly | 0 | bewirkt, dass ` toRawForm()` nur den Teil „NAME=VALUE“ des Cookies zurückgibt, der für die Rücksendung an einen Server im „Cookie:“-Header einer Client-Anfrage geeignet ist. Mehrere Cookies werden im „Cookie:“-Headerfeld durch ein Semikolon getrennt. |
QNetworkCookie::Full | 1 | sorgt dafür, dass ` toRawForm()` den vollständigen Inhalt des Cookies zurückgibt, wie er für die Übermittlung an einen Client im „Set-Cookie:“-Header eines Servers geeignet ist. |
Beachten Sie, dass nur die vollständige Form des Cookies wieder in seinen ursprünglichen Inhalt zurückkonvertiert werden kann.
Siehe auch toRawForm() und parseCookies().
[since 6.1] enum class QNetworkCookie::SameSite
| Konstante | Wert | Beschreibung |
|---|---|---|
QNetworkCookie::SameSite::Default | 0 | „SameSite“ ist nicht festgelegt. Kann vom Browser als „None“ oder „Lax“ interpretiert werden. |
QNetworkCookie::SameSite::None | 1 | Cookies können in allen Kontexten gesendet werden. Dies war früher die Standardeinstellung, doch neuere Browser haben „Lax“ zur Standardeinstellung gemacht und verlangen nun, dass das Cookie sowohl sicher ist als auch „SameSite=None“ gesetzt ist. |
QNetworkCookie::SameSite::Lax | 2 | Cookies werden bei First-Party-Anfragen und bei GET-Anfragen gesendet, die von einer Drittanbieter-Website initiiert werden. Dies ist die Standardeinstellung in modernen Browsern (seit Mitte 2020). |
QNetworkCookie::SameSite::Strict | 3 | Cookies werden nur in einem First-Party-Kontext gesendet. |
Diese Enumeration wurde in Qt 6.1 eingeführt.
Siehe auch „ setSameSitePolicy()“ und „ sameSitePolicy()“.
Dokumentation der Mitgliedsfunktionen
[explicit] QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
Erstellen Sie ein neues QNetworkCookie-Objekt, wobei der Name des Cookies auf „ name “ und dessen Wert auf „ value “ gesetzt wird.
Ein Cookie ist nur gültig, wenn es einen Namen hat. Der Wert ist für die Anwendung jedoch undurchsichtig und kann, wenn er leer ist, für den Remote-Server von Bedeutung sein.
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
Erstellt ein neues QNetworkCookie-Objekt, indem der Inhalt von „ other “ kopiert wird.
[noexcept] QNetworkCookie::~QNetworkCookie()
Löscht dieses „ QNetworkCookie “-Objekt.
QString QNetworkCookie::domain() const
Gibt die Domäne zurück, der dieses Cookie zugeordnet ist. Dies entspricht dem Feld „domain“ der Cookie-Zeichenkette.
Beachten Sie, dass die Domäne hier mit einem Punkt beginnen kann, der kein gültiger Hostname ist. Dies bedeutet jedoch, dass dieses Cookie mit allen Hostnamen übereinstimmt, die mit diesem Domänennamen enden.
Siehe auch ` setDomain()`.
QDateTime QNetworkCookie::expirationDate() const
Gibt das Ablaufdatum dieses Cookies zurück. Handelt es sich bei diesem Cookie um ein Sitzungscookie, ist der zurückgegebene Wert „ QDateTime “ ungültig. Liegt das Datum in der Vergangenheit, ist dieses Cookie bereits abgelaufen und sollte nicht erneut an einen Remote-Server gesendet werden.
Das Ablaufdatum entspricht den Parametern des Eintrags „expires“ in der Cookie-Zeichenkette.
Siehe auch isSessionCookie() und setExpirationDate().
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
Gibt „ true “ zurück, wenn dieses Cookie dasselbe Identifikator-Tupel wie „ other “ aufweist. Das Identifikator-Tupel setzt sich aus dem Namen, der Domäne und dem Pfad zusammen.
Siehe auch operator==().
bool QNetworkCookie::isHttpOnly() const
Gibt „ true “ zurück, wenn das „HttpOnly“-Flag für dieses Cookie aktiviert ist.
Ein „HttpOnly“-Cookie wird ausschließlich über Netzwerkanfragen und -antworten, d. h. über das HTTP-Protokoll, gesetzt und abgerufen. Es ist für Skripte, die im Browser ausgeführt werden, nicht zugänglich.
Siehe auch isSecure().
bool QNetworkCookie::isSecure() const
Gibt „ true “ zurück, wenn die Option „secure“ in der Cookie-Zeichenkette angegeben wurde, andernfalls „false“.
Sichere Cookies können vertrauliche Informationen enthalten und sollten nicht über unverschlüsselte Verbindungen erneut gesendet werden.
Siehe auch setSecure().
bool QNetworkCookie::isSessionCookie() const
Gibt „ true “ zurück, wenn es sich bei diesem Cookie um ein Sitzungscookie handelt. Ein Sitzungscookie ist ein Cookie ohne Ablaufdatum, was bedeutet, dass es gelöscht werden sollte, sobald die von der Anwendung definierte Sitzung beendet ist (in der Regel beim Beenden der Anwendung).
Siehe auch expirationDate() und setExpirationDate().
QByteArray QNetworkCookie::name() const
Gibt den Namen dieses Cookies zurück. Das einzige Pflichtfeld eines Cookies ist sein Name; ohne diesen gilt es als ungültig.
Siehe auch setName() und value().
void QNetworkCookie::normalize(const QUrl &url)
Diese Funktion normalisiert den Pfad und die Domäne des Cookies, falls diese zuvor leer waren. Der Parameter „ url “ wird verwendet, um die korrekte Domäne und den korrekten Pfad zu ermitteln.
[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(QByteArrayView cookieString)
Analysiert die Cookie-Zeichenkette „ cookieString “, wie sie in der Serverantwort im „Set-Cookie:“-Header empfangen wurde. Bei einem Analysefehler gibt diese Funktion eine leere Liste zurück.
Da der HTTP-Header mehrere Cookies gleichzeitig setzen kann, gibt diese Funktion ein QList<QNetworkCookie> zurück, und zwar eines für jedes analysierte Cookie.
Hinweis: In Qt-Versionen vor 6.7 akzeptierte diese Funktion ausschließlich „ QByteArray “.
Siehe auch ` toRawForm()`.
QString QNetworkCookie::path() const
Gibt den diesem Cookie zugeordneten Pfad zurück. Dieser entspricht dem Feld „path“ der Cookie-Zeichenkette.
Siehe auch setPath().
[since 6.1] QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const
Gibt die Option „SameSite “ zurück, sofern sie in der Cookie-Zeichenkette angegeben ist; andernfalls „ SameSite::Default “.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch setSameSitePolicy().
void QNetworkCookie::setDomain(const QString &domain)
Legt die diesem Cookie zugeordnete Domäne auf „ domain “ fest.
Siehe auch domain().
void QNetworkCookie::setExpirationDate(const QDateTime &date)
Legt das Ablaufdatum dieses Cookies auf „ date “ fest. Wird für dieses Cookie ein ungültiges Ablaufdatum festgelegt, handelt es sich um ein Sitzungscookie.
Siehe auch isSessionCookie() und expirationDate().
void QNetworkCookie::setHttpOnly(bool enable)
Setzt das „HttpOnly“-Flag dieses Cookies auf „ enable “.
Siehe auch isHttpOnly().
void QNetworkCookie::setName(const QByteArray &cookieName)
Legt den Namen dieses Cookies auf „ cookieName “ fest. Beachten Sie, dass die Festlegung eines leeren Cookie-Namens („ QByteArray “) dazu führt, dass dieses Cookie ungültig wird.
Siehe auch name() und value().
void QNetworkCookie::setPath(const QString &path)
Legt den mit diesem Cookie verknüpften Pfad auf path fest.
Siehe auch path().
[since 6.1] void QNetworkCookie::setSameSitePolicy(QNetworkCookie::SameSite sameSite)
Setzt die Option „SameSite “ dieses Cookies auf „ sameSite “.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch sameSitePolicy().
void QNetworkCookie::setSecure(bool enable)
Setzt das Sicherheitsflag dieses Cookies auf „ enable “.
Sichere Cookies können vertrauliche Informationen enthalten und sollten nicht über unverschlüsselte Verbindungen erneut gesendet werden.
Siehe auch isSecure().
void QNetworkCookie::setValue(const QByteArray &value)
Setzt den Wert dieses Cookies auf „ value “.
Siehe auch value() und name().
[noexcept] void QNetworkCookie::swap(QNetworkCookie &other)
Ersetzt dieses Cookie durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
Gibt die Rohdaten dieses „ QNetworkCookie “ zurück. Das von dieser Funktion zurückgegebene „ QByteArray “ eignet sich für einen HTTP-Header, entweder in einer Serverantwort (dem „Set-Cookie“-Header) oder in einer Client-Anfrage (dem „Cookie“-Header). Sie können mithilfe von „ form “ zwischen zwei Formaten wählen.
Siehe auch parseCookies().
QByteArray QNetworkCookie::value() const
Gibt den Wert dieses Cookies zurück, wie er in der Cookie-Zeichenkette angegeben ist. Beachten Sie, dass ein Cookie auch dann noch gültig ist, wenn sein Wert leer ist.
Cookie-Name-Wert-Paare gelten für die Anwendung als undurchsichtig: Das heißt, ihre Werte haben keine Bedeutung.
Siehe auch setValue() und name().
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
Gibt „ true “ zurück, wenn dieses Cookie nicht mit „ other “ übereinstimmt.
Siehe auch operator==().
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
Kopiert den Inhalt des Objekts „ QNetworkCookie “ other in dieses Objekt.
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
Gibt „ true “ zurück, wenn dieses Cookie mit „ other “ übereinstimmt. Diese Funktion gibt nur dann „ true “ zurück, wenn alle Felder des Cookies identisch sind.
In manchen Kontexten können jedoch zwei Cookies mit demselben Namen als identisch angesehen werden.
Siehe auch operator!=() und hasSameIdentifier().
© 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.