QNetworkCookie Class
QNetworkCookie クラスは、1つのネットワーク Cookie を保持します。詳細...
| ヘッダー: | #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 は、ネットワークから受信したこのようなクッキーを 1 つ保持します。クッキーには名前と値がありますが、それらはアプリケーションにとっては不透明です(つまり、そこに格納されている情報はアプリケーションにとって意味を持ちません)。クッキーには関連付けられたパス名とドメインがあり、これらはクッキーをいつサーバーに再送信すべきかを示します。
また、クッキーには有効期限を示す「有効期限」が設定されることもあります。有効期限が設定されていない場合、そのクッキーは「セッションクッキー」とみなされ、アプリケーションが終了したとき(またはそのアプリケーションにおけるセッションが終了したとき)に破棄されるべきです。
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 | toRawForm() が、サーバーの「Set-Cookie:」ヘッダーでクライアントに送信するのに適した、クッキーの内容全体を返すようにします。 |
なお、クッキーの完全な形式(Full)のみが、元のコンテンツに解析し直すことができます。
toRawForm() およびparseCookies()も参照してください 。
[since 6.1] enum class QNetworkCookie::SameSite
| 定数 | 値 | 説明 |
|---|---|---|
QNetworkCookie::SameSite::Default | 0 | SameSite が設定されていません。ブラウザによって「None」または「Lax」と解釈される場合があります。 |
QNetworkCookie::SameSite::None | 1 | すべてのコンテキストで Cookie を送信できます。これはかつてのデフォルト設定でしたが、最近のブラウザでは Lax がデフォルトとなり、現在では Cookie がセキュアであることに加え、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ヘッダーでは複数のクッキーを同時に設定できるため、この関数は、解析されたクッキーごとに1つずつ、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 は、サーバーのレスポンス(Set-Cookieヘッダー)またはクライアントのリクエスト(Cookieヘッダー)のいずれにおいても、HTTPヘッダーとして使用できます。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()も参照してください 。
© 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.