QNetworkCookie Class

Die Klasse QNetworkCookie enthält einen Netzwerk-Cookie. Mehr...

Kopfzeile: #include <QNetworkCookie>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

Ö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)

Detaillierte Beschreibung

Cookies sind kleine Informationsbits, die von zustandslosen Protokollen wie HTTP verwendet werden, um einige dauerhafte Informationen über Anfragen hinweg zu erhalten.

Ein Cookie wird von einem entfernten Server gesetzt, wenn er auf eine Anfrage antwortet, und er erwartet, dass derselbe Cookie zurückgeschickt wird, wenn weitere Anfragen gesendet werden.

QNetworkCookie enthält ein solches Cookie, wie es vom Netzwerk empfangen wurde. Ein Cookie hat einen Namen und einen Wert, die jedoch für die Anwendung undurchsichtig sind (d.h. die darin gespeicherten Informationen haben keine Bedeutung für die Anwendung). Ein Cookie hat einen zugehörigen Pfadnamen und eine Domäne, die angeben, wann das Cookie erneut an den Server gesendet werden soll.

Ein Cookie kann auch ein Verfallsdatum haben, das seine Gültigkeit angibt. Wenn das Ablaufdatum nicht vorhanden ist, wird das Cookie als "Sitzungscookie" betrachtet und sollte verworfen werden, wenn die Anwendung beendet wird (oder wenn ihr Konzept der Sitzung vorbei ist).

QNetworkCookie bietet eine Möglichkeit, ein Cookie aus dem HTTP-Header-Format mit Hilfe der Funktion QNetworkCookie::parseCookies() zu analysieren. Wenn es jedoch in einer QNetworkReply empfangen wird, ist das Cookie bereits geparst.

Diese Klasse implementiert Cookies, wie sie in der ursprünglichen Cookie-Spezifikation von Netscape beschrieben sind, die der RFC 2109-Spezifikation ähnlich ist, plus der "HttpOnly"-Erweiterung. Die neuere RFC 2965-Spezifikation (die den Set-Cookie2-Header verwendet) wird nicht unterstützt.

Siehe auch QNetworkCookieJar, QNetworkRequest, und QNetworkReply.

Dokumentation der Mitgliedstypen

enum QNetworkCookie::RawForm

Dieses Enum wird mit der Funktion toRawForm() verwendet, um anzugeben, welche Form eines Cookies zurückgegeben werden soll.

KonstanteWertBeschreibung
QNetworkCookie::NameAndValueOnly0toRawForm() gibt nur den "NAME=VALUE"-Teil des Cookies zurück, der im "Cookie:"-Header einer Client-Anfrage an den Server zurückgeschickt werden kann. Mehrere Cookies werden durch ein Semikolon im "Cookie:"-Headerfeld getrennt.
QNetworkCookie::Full1macht toRawForm() gibt den vollständigen Inhalt des Cookies zurück, so wie er in der "Set-Cookie:"-Kopfzeile eines Servers an einen Client gesendet werden kann.

Beachten Sie, dass nur die vollständige Form des Cookies wieder in seinen ursprünglichen Inhalt zerlegt werden kann.

Siehe auch toRawForm() und parseCookies().

[since 6.1] enum class QNetworkCookie::SameSite

KonstanteWertBeschreibung
QNetworkCookie::SameSite::Default0SameSite ist nicht gesetzt. Kann vom Browser als None oder Lax interpretiert werden.
QNetworkCookie::SameSite::None1Cookies können in allen Kontexten gesendet werden. Dies war früher die Standardeinstellung, aber neuere Browser haben Lax als Standardeinstellung festgelegt und verlangen nun, dass das Cookie sowohl sicher ist als auch SameSite=None setzt.
QNetworkCookie::SameSite::Lax2Cookies werden bei Erstanfragen und GET-Anfragen, die von Websites Dritter initiiert werden, gesendet. Dies ist die Standardeinstellung in modernen Browsern (seit Mitte 2020).
QNetworkCookie::SameSite::Strict3Cookies werden nur im First-Party-Kontext gesendet.

Dieses Enum 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, indem Sie den Cookie-Namen auf name und seinen Wert auf value initialisieren.

Ein Cookie ist nur gültig, wenn es einen Namen hat. Der Wert ist jedoch für die Anwendung undurchsichtig, und ein leerer Wert kann für den entfernten Server von Bedeutung sein.

QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)

Erzeugt ein neues QNetworkCookie-Objekt, indem der Inhalt von other kopiert wird.

[noexcept] QNetworkCookie::~QNetworkCookie()

Zerstört dieses QNetworkCookie Objekt.

QString QNetworkCookie::domain() const

Gibt die Domäne zurück, der dieses Cookie zugeordnet ist. Dies entspricht dem Feld "domain" des Cookie-Strings.

Beachten Sie, dass die Domain hier mit einem Punkt beginnen kann, was kein gültiger Hostname ist. Es 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 für dieses Cookie zurück. Handelt es sich bei diesem Cookie um einen Sitzungscookie, ist die zurückgegebene QDateTime nicht gültig. Liegt das Datum in der Vergangenheit, ist dieser Cookie bereits abgelaufen und sollte nicht erneut an einen entfernten Server zurückgesendet werden.

Das Verfallsdatum entspricht den Parametern des "expires"-Eintrags im Cookie-String.

Siehe auch isSessionCookie() und setExpirationDate().

bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const

Gibt true zurück, wenn dieser Cookie das gleiche Bezeichner-Tupel wie other hat. Das Bezeichner-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 nur über die Netzwerkanfragen und -antworten gesetzt und abgerufen, d. h. über das HTTP-Protokoll. Es ist für Skripte, die auf Browsern laufen, nicht zugänglich.

Siehe auch isSecure().

bool QNetworkCookie::isSecure() const

Gibt true zurück, wenn die Option "secure" im Cookie-String angegeben wurde, andernfalls false.

Sichere Cookies können private Informationen enthalten und sollten nicht über unverschlüsselte Verbindungen weitergesendet werden.

Siehe auch setSecure().

bool QNetworkCookie::isSessionCookie() const

Gibt true zurück, wenn dieses Cookie ein Sitzungscookie ist. Ein Sitzungscookie ist ein Cookie, das kein Ablaufdatum hat, was bedeutet, dass es verworfen werden sollte, wenn das Konzept der Sitzung der Anwendung vorbei ist (normalerweise, wenn die Anwendung beendet wird).

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 den er nicht als gültig angesehen wird.

Siehe auch setName() und value().

void QNetworkCookie::normalize(const QUrl &url)

Diese Funktion normalisiert den Pfad und die Domäne des Cookies, wenn diese zuvor leer waren. Der Parameter url wird verwendet, um die richtige Domäne und den richtigen Pfad zu ermitteln.

[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(QByteArrayView cookieString)

Analysiert die Cookie-Zeichenkette cookieString, wie sie von einer Serverantwort im "Set-Cookie:"-Header empfangen wurde. Bei einem Fehler beim Parsen gibt diese Funktion eine leere Liste zurück.

Da der HTTP-Header mehr als ein Cookie gleichzeitig setzen kann, gibt diese Funktion eine QList<QNetworkCookie> zurück, eine für jedes Cookie, das geparst wird.

Hinweis: In Qt-Versionen vor 6.7 nahm diese Funktion nur QByteArray.

Siehe auch toRawForm().

QString QNetworkCookie::path() const

Gibt den mit diesem Cookie verbundenen Pfad zurück. Dies entspricht dem Feld "path" des Cookie-Strings.

Siehe auch setPath().

[since 6.1] QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const

Gibt die Option "SameSite" zurück, wenn sie im Cookie-String angegeben ist, oder SameSite::Default, wenn sie nicht vorhanden ist.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch setSameSitePolicy().

void QNetworkCookie::setDomain(const QString &domain)

Setzt die mit diesem Cookie verbundene Domain auf domain.

Siehe auch domain().

void QNetworkCookie::setExpirationDate(const QDateTime &date)

Setzt das Ablaufdatum dieses Cookies auf date. Wenn Sie diesem Cookie ein ungültiges Ablaufdatum zuweisen, bedeutet dies, dass es sich um ein Sitzungscookie handelt.

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)

Setzt den Namen dieses Cookies auf cookieName. Beachten Sie, dass das Setzen eines Cookie-Namens auf ein leeres QByteArray dieses Cookie ungültig macht.

Siehe auch name() und value().

void QNetworkCookie::setPath(const QString &path)

Setzt den mit diesem Cookie verbundenen Pfad auf path.

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 private Informationen enthalten und sollten nicht über unverschlüsselte Verbindungen weitergesendet 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)

Tauscht diesen Cookie mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const

Gibt die Rohform dieser QNetworkCookie zurück. Die von dieser Funktion zurückgegebene QByteArray eignet sich für einen HTTP-Header, entweder in einer Server-Antwort (der Set-Cookie-Header) oder in der Client-Anfrage (der Cookie-Header). Sie können eines von zwei Formaten wählen, indem Sie form verwenden.

Siehe auch parseCookies().

QByteArray QNetworkCookie::value() const

Gibt den in der Cookie-Zeichenkette angegebenen Wert dieses Cookies zurück. Beachten Sie, dass ein Cookie auch dann gültig ist, wenn sein Wert leer ist.

Cookie-Name-Wert-Paare werden als undurchsichtig für die Anwendung betrachtet: 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 dieser Cookie nicht gleich other ist.

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 dieser Cookie gleich other ist. Diese Funktion gibt true nur zurück, wenn alle Felder des Cookies gleich sind.

In manchen Kontexten können jedoch zwei Cookies mit demselben Namen als gleich angesehen werden.

Siehe auch operator!=() und hasSameIdentifier().

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