QNetworkCookie Class
QNetworkCookie クラスは、1 つのネットワーク・クッキーを保持します。詳細...
Header: | #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
このクッキーに関連付けられたパスを返します。これは Cookie 文字列の "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)
このクッキーの secure フラグを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
Cookie文字列で指定された、このCookieの値を返します。クッキーの値が空でも、クッキーは有効であることに注意してください。
クッキーの名前と値のペアは、アプリケーションにとって不透明とみなされます。
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()も参照してください 。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。