QNetworkCookie Class
La classe QNetworkCookie contient un cookie réseau. En savoir plus...
| En-tête : | #include <QNetworkCookie> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
- Liste de tous les membres, y compris les membres hérités
- QNetworkCookie fait partie des classes partagées implicitement.
Types publics
| enum | RawForm { NameAndValueOnly, Full } |
(since 6.1) enum class | SameSite { Default, None, Lax, Strict } |
Fonctions publiques
| 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 |
Membres publics statiques
| QList<QNetworkCookie> | parseCookies(QByteArrayView cookieString) |
Description détaillée
Les cookies sont de petits fragments d'informations que les protocoles sans état, tels que HTTP, utilisent pour conserver certaines informations persistantes d'une requête à l'autre.
Un cookie est défini par un serveur distant lorsqu’il répond à une requête et il s’attend à ce que ce même cookie lui soit renvoyé lors des requêtes suivantes.
QNetworkCookie contient un tel cookie tel qu’il a été reçu du réseau. Un cookie possède un nom et une valeur, mais ceux-ci sont opaques pour l’application (c’est-à-dire que les informations qu’ils contiennent n’ont aucune signification pour l’application). Un cookie est associé à un chemin d’accès et à un domaine, qui indiquent quand le cookie doit être renvoyé au serveur.
Un cookie peut également comporter une date d’expiration, indiquant sa validité. Si aucune date d’expiration n’est spécifiée, le cookie est considéré comme un « cookie de session » et doit être supprimé à la fermeture de l’application (ou à la fin de la session telle que définie par celle-ci).
QNetworkCookie permet d’analyser un cookie à partir du format d’en-tête HTTP à l’aide de la fonction QNetworkCookie::parseCookies(). Cependant, lorsqu’il est reçu dans un objet QNetworkReply, le cookie est déjà analysé.
Cette classe implémente les cookies tels que décrits dans la spécification initiale de Netscape, qui est assez similaire à la spécification RFC 2109, avec en plus l'extension « HttpOnly ». La spécification RFC 2965 plus récente (qui utilise l'en-tête Set-Cookie2) n'est pas prise en charge.
Voir également QNetworkCookieJar, QNetworkRequest et QNetworkReply.
Documentation sur les types de membres
enum QNetworkCookie::RawForm
Cette énumération est utilisée avec la fonction toRawForm() pour indiquer quelle forme de cookie doit être renvoyée.
| Constante | Valeur | Description |
|---|---|---|
QNetworkCookie::NameAndValueOnly | 0 | fait en sorte que la fonction toRawForm() ne renvoie que la partie « NAME=VALUE » du cookie, adaptée pour être renvoyée à un serveur dans l'en-tête « Cookie: » d'une requête client. Les cookies multiples sont séparés par un point-virgule dans le champ d'en-tête « Cookie: ». |
QNetworkCookie::Full | 1 | fait en sorte que la fonction ` toRawForm()` renvoie le contenu complet du cookie, tel qu’il doit être envoyé à un client dans l’en-tête « Set-Cookie: » d’un serveur. |
Notez que seule la forme complète du cookie peut être réanalysée pour retrouver son contenu d’origine.
Voir également toRawForm() et parseCookies().
[since 6.1] enum class QNetworkCookie::SameSite
| Constante | Valeur | Description |
|---|---|---|
QNetworkCookie::SameSite::Default | 0 | SameSite n'est pas défini. Peut être interprété comme « None » ou « Lax » par le navigateur. |
QNetworkCookie::SameSite::None | 1 | Les cookies peuvent être envoyés dans tous les contextes. C'était auparavant le comportement par défaut, mais les navigateurs récents ont adopté « Lax » comme valeur par défaut et exigent désormais que le cookie soit à la fois sécurisé et que SameSite=None soit défini. |
QNetworkCookie::SameSite::Lax | 2 | Les cookies sont envoyés lors des requêtes de première partie et des requêtes GET initiées par un site web tiers. Il s'agit du comportement par défaut des navigateurs modernes (depuis mi-2020). |
QNetworkCookie::SameSite::Strict | 3 | Les cookies ne seront envoyés que dans un contexte de première partie. |
Cette énumération a été introduite dans Qt 6.1.
Voir également setSameSitePolicy() et sameSitePolicy().
Documentation des fonctions membres
[explicit] QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
Créez un nouvel objet QNetworkCookie en initialisant le nom du cookie à « name » et sa valeur à « value ».
Un cookie n'est valide que s'il possède un nom. Cependant, la valeur est opaque pour l'application et le fait qu'elle soit vide peut avoir une signification pour le serveur distant.
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
Crée un nouvel objet QNetworkCookie en copiant le contenu de other.
[noexcept] QNetworkCookie::~QNetworkCookie()
Supprime cet objet « QNetworkCookie ».
QString QNetworkCookie::domain() const
Renvoie le domaine auquel ce cookie est associé. Cela correspond au champ « domain » de la chaîne de caractères du cookie.
Notez que le domaine peut ici commencer par un point, ce qui n'est pas un nom d'hôte valide. Cela signifie toutefois que ce cookie correspond à tous les noms d'hôtes se terminant par ce nom de domaine.
Voir également setDomain().
QDateTime QNetworkCookie::expirationDate() const
Renvoie la date d'expiration de ce cookie. Si ce cookie est un cookie de session, l'QDateTime e renvoyée ne sera pas valide. Si la date est antérieure à la date du système, ce cookie a déjà expiré et ne doit plus être envoyé à un serveur distant.
La date d'expiration correspond aux paramètres de l'entrée « expires » dans la chaîne du cookie.
Voir également isSessionCookie() et setExpirationDate().
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
Renvoie « true » si ce cookie possède le même tuple d'identificateurs que « other ». Le tuple d'identificateurs est composé du nom, du domaine et du chemin d'accès.
Voir également operator==().
bool QNetworkCookie::isHttpOnly() const
Renvoie true si l'indicateur « HttpOnly » est activé pour ce cookie.
Un cookie « HttpOnly » n’est défini et récupéré que par les requêtes et réponses réseau, c’est-à-dire via le protocole HTTP. Il n’est pas accessible depuis les scripts s’exécutant dans les navigateurs.
Voir également isSecure().
bool QNetworkCookie::isSecure() const
Renvoie « true » si l'option « secure » a été spécifiée dans la chaîne du cookie, sinon renvoie « false ».
Les cookies sécurisés peuvent contenir des informations confidentielles et ne doivent pas être retransmis via des connexions non chiffrées.
Voir également setSecure().
bool QNetworkCookie::isSessionCookie() const
Renvoie true si ce cookie est un cookie de session. Un cookie de session est un cookie qui n'a pas de date d'expiration, ce qui signifie qu'il doit être supprimé lorsque la session, telle que définie par l'application, prend fin (généralement, à la fermeture de l'application).
Voir également expirationDate() et setExpirationDate().
QByteArray QNetworkCookie::name() const
Renvoie le nom de ce cookie. Le seul champ obligatoire d'un cookie est son nom ; sans celui-ci, il n'est pas considéré comme valide.
Voir également setName() et value().
void QNetworkCookie::normalize(const QUrl &url)
Cette fonction normalise le chemin d'accès et le domaine du cookie s'ils étaient auparavant vides. Le paramètre ` url ` sert à déterminer le domaine et le chemin d'accès corrects.
[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(QByteArrayView cookieString)
Analyse la chaîne de caractères du cookie cookieString telle qu'elle est reçue dans l'en-tête « Set-Cookie: » d'une réponse du serveur. En cas d'erreur d'analyse, cette fonction renvoie une liste vide.
Étant donné que l'en-tête HTTP peut définir plusieurs cookies à la fois, cette fonction renvoie une liste QList<QNetworkCookie>, contenant un élément pour chaque cookie analysé.
Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction n'acceptait que les objets ` QByteArray `.
Voir aussi ` toRawForm()`.
QString QNetworkCookie::path() const
Renvoie le chemin associé à ce cookie. Cela correspond au champ « path » de la chaîne de caractères du cookie.
Voir également setPath().
[since 6.1] QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const
Renvoie l'option «SameSite » si elle est spécifiée dans la chaîne du cookie, ou « SameSite::Default » si elle n'est pas présente.
Cette fonction a été introduite dans Qt 6.1.
Voir aussi setSameSitePolicy().
void QNetworkCookie::setDomain(const QString &domain)
Définit le domaine associé à ce cookie sur domain.
Voir également domain().
void QNetworkCookie::setExpirationDate(const QDateTime &date)
Définit la date d'expiration de ce cookie sur date. Si vous attribuez une date d'expiration non valide à ce cookie, cela signifiera qu'il s'agit d'un cookie de session.
Voir également isSessionCookie() et expirationDate().
void QNetworkCookie::setHttpOnly(bool enable)
Définit l'indicateur « HttpOnly » de ce cookie sur « enable ».
Voir également isHttpOnly().
void QNetworkCookie::setName(const QByteArray &cookieName)
Définit le nom de ce cookie sur « cookieName ». Notez que si vous attribuez à un cookie un nom vide ( QByteArray ), celui-ci sera invalidé.
Voir également name() et value().
void QNetworkCookie::setPath(const QString &path)
Définit le chemin d'accès associé à ce cookie sur path.
Voir également path().
[since 6.1] void QNetworkCookie::setSameSitePolicy(QNetworkCookie::SameSite sameSite)
Définit la valeur de l'option «SameSite » de ce cookie sur « sameSite ».
Cette fonction a été introduite dans Qt 6.1.
Voir également sameSitePolicy().
void QNetworkCookie::setSecure(bool enable)
Définit l'indicateur de sécurité de ce cookie sur « enable ».
Les cookies sécurisés peuvent contenir des informations confidentielles et ne doivent pas être retransmis via des connexions non chiffrées.
Voir également isSecure().
void QNetworkCookie::setValue(const QByteArray &value)
Définit la valeur de ce cookie sur « value ».
Voir également value() et name().
[noexcept] void QNetworkCookie::swap(QNetworkCookie &other)
Remplace ce cookie par other. Cette opération est très rapide et ne pose jamais de problème.
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
Renvoie la forme brute de cet QNetworkCookie. L'QByteArray e renvoyé par cette fonction est adapté à un en-tête HTTP, que ce soit dans une réponse du serveur (l'en-tête Set-Cookie) ou dans la requête du client (l'en-tête Cookie). Vous pouvez choisir l'un des deux formats, à l'aide de form.
Voir également parseCookies().
QByteArray QNetworkCookie::value() const
Renvoie la valeur de ce cookie, telle qu'elle est spécifiée dans la chaîne de caractères du cookie. Notez qu'un cookie reste valide même si sa valeur est vide.
Les paires nom-valeur des cookies sont considérées comme opaques pour l'application : en d'autres termes, leurs valeurs n'ont aucune signification.
Voir également setValue() et name().
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
Renvoie « true » si ce cookie n'est pas égal à « other ».
Voir également operator==().
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
Copie le contenu de l'objet QNetworkCookie other vers cet objet.
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
Renvoie « true » si ce cookie est identique à « other ». Cette fonction ne renvoie « true » que si tous les champs du cookie sont identiques.
Cependant, dans certains contextes, deux cookies portant le même nom peuvent être considérés comme identiques.
Voir aussi operator!=() et 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.