QNetworkCookie Class
QNetworkCookie クラスは、1 つのネットワーク・クッキーを保持します。詳細...
ヘッダー | #include <QNetworkCookie> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- 継承メンバを含む全メンバ一覧
- QNetworkCookie は、暗黙の共有クラスに属しています。
パブリック型
enum | RawForm { NameAndValueOnly, Full } |
(since 6.1) enum class | SameSite { Default, None, Lax, Strict } |
パブリック関数
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 |
静的パブリック・メンバー
QList<QNetworkCookie> | parseCookies(QByteArrayView cookieString) |
詳細説明
クッキーは、HTTP のようなステートレス・プロトコルが、リクエスト間で永続的な情報を保持するために使用する小さな情報です。
クッキーは、リクエストに応答するときにリモートサーバーによって設定され、さらにリクエストが送信されたときに同じクッキーが送り返されることを期待します。
QNetworkCookie は、ネットワークから受け取ったそのようなクッキーを保持します。クッキーは名前と値を持ちますが、アプリケーションにとっては不透明です(つまり、そこに格納された情報はアプリケーションにとって意味を持ちません)。クッキーには関連したパス名とドメインがあり、クッキーがいつサーバに再送されるべきかを示します。
クッキーはその有効性を示す有効期限を持つこともできます。有効期限がない場合、そのクッキーは「セッション・クッキー」とみなされ、アプリケーションが終了したとき(またはセッションの概念が終わったとき)に破棄されるべきです。
QNetworkCookie は、QNetworkCookie::parseCookies() 関数を使って HTTP ヘッダ・フォーマットからクッキーを解析する方法を提供します。しかし、QNetworkReply で受信されたとき、クッキーはすでに解析されています。
このクラスはNetscape による最初のクッキー仕様で記述されたクッキーを実装します。これはRFC 2109仕様にいくらか似ており、さらに「HttpOnly」拡張が追加されています。より最近のRFC 2965仕様(Set-Cookie2ヘッダを使用)はサポートされていません。
QNetworkCookieJar 、QNetworkRequest 、QNetworkReplyも参照のこと 。
メンバー・タイプ・ドキュメント
enum QNetworkCookie::RawForm
この列挙型は、toRawForm() 関数とともに使用され、どの形式のクッキーが返されるかを宣言します。
定数 | 値 | 説明 |
---|---|---|
QNetworkCookie::NameAndValueOnly | 0 | toRawFormは、クライアント・リクエストの "Cookie: "ヘッダでサーバに送り返すのに適した、クッキーの "NAME=VALUE "部分のみを返します。複数のクッキーは、"Cookie: "ヘッダーフィールドではセミコロンで区切られる。 |
QNetworkCookie::Full | 1 | makestoRawForm() は、サーバの "Set-Cookie: "ヘッダでクライアントに送信するのに適した、完全なクッキーの内容を返します。 |
クッキーの完全な形式だけが、元のコンテンツに解析して戻すことができることに注意してください。
toRawForm() とparseCookies()も参照してください 。
[since 6.1]
enum class QNetworkCookie::SameSite
定数 | 値 | 説明 |
---|---|---|
QNetworkCookie::SameSite::Default | 0 | SameSiteが設定されていない。ブラウザによってNoneまたはLaxと解釈される。 |
QNetworkCookie::SameSite::None | 1 | クッキーはすべての文脈で送ることができます。以前はこれがデフォルトでしたが、最近のブラウザは Lax をデフォルトにし、クッキーが安全であることと SameSite=None を設定することの両方を要求するようになりました。 |
QNetworkCookie::SameSite::Lax | 2 | クッキーはファーストパーティリクエストとサードパーティウェブサイトによって開始されたGETリクエストで送られます。これはモダンブラウザのデフォルトです(2020年半ば以降)。 |
QNetworkCookie::SameSite::Strict | 3 | クッキーはファーストパーティコンテキストでのみ送信されます。 |
この列挙型は Qt 6.1 で導入されました。
setSameSitePolicy() およびsameSitePolicy()も参照してください 。
メンバ関数のドキュメント
[explicit]
QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
新しい QNetworkCookie オブジェクトを作成し、クッキー名をname に、その値をvalue に初期化する。
クッキーは名前を持っているときだけ有効です。しかし、値はアプリケーションには不透明で、空であることがリモート・サーバに とって重要かもしれません。
QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)
other の内容をコピーして、新しい QNetworkCookie オブジェクトを作成します。
[noexcept]
QNetworkCookie::~QNetworkCookie()
このQNetworkCookie オブジェクトを破棄する。
QString QNetworkCookie::domain() const
このクッキーが関連付けられているドメインを返します。これはクッキー文字列の "domain "フィールドに対応します。
ここでのドメインはドットで始まるかもしれず、有効なホスト名ではないことに注意してください。しかし、これはこのクッキーがそのドメイン名で終わるすべてのホスト名にマッチすることを意味します。
setDomain()も参照してください 。
QDateTime QNetworkCookie::expirationDate() const
このクッキーの有効期限を返します。このクッキーがセッション・クッキーである場合、返されるQDateTime は有効ではありません。もし日付が過去のものであれば、このクッキーはすでに失効しているので、リモート・サーバに再び送り返すべきではありません。
有効期限はクッキー文字列の「expires」エントリのパラメータに対応する。
isSessionCookie() およびsetExpirationDate()も参照のこと 。
bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const
このクッキーがother と同じ識別子タプルを持つ場合、true
を返します。識別子タプルは、名前、ドメイン、パスで構成されます。
operator==()も参照してください 。
bool QNetworkCookie::isHttpOnly() const
このクッキーで「HttpOnly」フラグが有効になっていれば、true
を返す。
HttpOnly」のクッキーは、ネットワークのリクエストとリプライ、つまりHTTPプロトコルのみによって設定され、取得されます。ブラウザ上で動作するスクリプトからはアクセスできません。
isSecure()も参照してください 。
bool QNetworkCookie::isSecure() const
クッキー文字列に「secure」オプションが指定されていればtrue
、そうでなければfalseを返す。
セキュアなクッキーには個人情報が含まれている可能性があり、暗号化されていない接続で再送信すべきではありません。
setSecure()も参照してください 。
bool QNetworkCookie::isSessionCookie() const
このクッキーがセッション・クッキーであればtrue
を返します。セッション・クッキーとは有効期限のないクッキーのことで、アプリケーションのセッ ションの概念が終わったとき(通常はアプリケーションが終了したとき)に破棄されるべきものです。
expirationDate() とsetExpirationDate()も参照してください 。
QByteArray QNetworkCookie::name() const
このクッキーの名前を返します。クッキーの唯一の必須フィールドはその名前で、これがないと有効であるとはみなされません。
setName() およびvalue()も参照してください 。
void QNetworkCookie::normalize(const QUrl &url)
この関数はクッキーのパスとドメインが以前は空であった場合、それらを正規化します。url パラメータは正しいドメインとパスを決定するために使用されます。
[static]
QList<QNetworkCookie> QNetworkCookie::parseCookies(QByteArrayView cookieString)
Set-Cookie: "ヘッダーのサーバー・レスポンスから受け取ったクッキー文字列cookieString を解析します。解析エラーの場合、この関数は空のリストを返します。
HTTP ヘッダは同時に複数のクッキーを設定できるので、この関数はQList<QNetworkCookie> を返します。
注意: Qt 6.7 より前のバージョンでは、この関数はQByteArray のみを受け取りました。
toRawForm()も参照してください 。
QString QNetworkCookie::path() const
このクッキーに関連付けられたパスを返します。これはクッキー文字列の "path "フィールドに対応します。
setPath()も参照してください 。
[since 6.1]
QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const
クッキー文字列に "SameSite" オプションが指定されていればそれを、なければSameSite::Default
を返します。
この関数は Qt 6.1 で導入されました。
setSameSitePolicy()も参照してください 。
void QNetworkCookie::setDomain(const QString &domain)
このクッキーに関連付けられたドメインをdomain に設定する。
domain()も参照 。
void QNetworkCookie::setExpirationDate(const QDateTime &date)
このクッキーの有効期限をdate に設定します。 このクッキーに無効な有効期限を設定すると、セッション・クッキーであることを意味します。
isSessionCookie() とexpirationDate()も参照してください 。
void QNetworkCookie::setHttpOnly(bool enable)
このクッキーの "HttpOnly "フラグをenable に設定する。
isHttpOnly()も参照 。
void QNetworkCookie::setName(const QByteArray &cookieName)
このクッキーの名前をcookieName に設定します。クッキー名を空のQByteArray に設定すると、このクッキーは無効になることに注意してください。
void QNetworkCookie::setPath(const QString &path)
このクッキーに関連付けられたパスをpath に設定します。
path()も参照 。
[since 6.1]
void QNetworkCookie::setSameSitePolicy(QNetworkCookie::SameSite sameSite)
このクッキーの "SameSite" オプションをsameSite に設定します。
この関数は Qt 6.1 で導入されました。
sameSitePolicy()も参照してください 。
void QNetworkCookie::setSecure(bool enable)
このクッキーのセキュアフラグをenable に設定します。
セキュアなクッキーは個人情報を含んでいる可能性があるので、暗号化されていない接続で再送信すべきではありません。
isSecure()も参照してください 。
void QNetworkCookie::setValue(const QByteArray &value)
このクッキーの値をvalue に設定する。
[noexcept]
void QNetworkCookie::swap(QNetworkCookie &other)
このクッキーをother と交換する。この操作は非常に速く、決して失敗しない。
QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const
このQNetworkCookie の生の形式を返す。この関数が返すQByteArray は、HTTPヘッダとして適しており、サーバ応答 (Set-Cookieヘッダ) またはクライアントリクエスト (Cookieヘッダ) のいずれかに使用できます。form を使用して、2つの形式のどちらかを選択できます。
parseCookies()も参照してください 。
QByteArray QNetworkCookie::value() const
クッキーの文字列で指定された値を返します。クッキーはその値が空でも有効であることに注意してください。
クッキーの名前と値のペアは、アプリケーションにとって不透明とみなされます。
setValue() およびname()も参照して ください。
bool QNetworkCookie::operator!=(const QNetworkCookie &other) const
このクッキーがother と等しくない場合はtrue
を返す。
operator==()も参照 。
QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)
QNetworkCookie オブジェクトother の内容をこのオブジェクトにコピーする。
bool QNetworkCookie::operator==(const QNetworkCookie &other) const
このクッキーがother と等しい場合、true
を返します。 この関数はクッキーのすべてのフィールドが同じ場合にのみtrue
を返します。
しかし文脈によっては、同じ名前の 2 つのクッキーが等しいとみなされることもあります。
operator!=() と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.