QNetworkCookieJar Class
QNetworkCookieJar クラスは、QNetworkCookie オブジェクトの単純なジャーを実装しています。詳細...
| ヘッダー: | #include <QNetworkCookieJar> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| 継承元: | QObject |
パブリック関数
| QNetworkCookieJar(QObject *parent = nullptr) | |
| virtual | ~QNetworkCookieJar() |
| virtual QList<QNetworkCookie> | cookiesForUrl(const QUrl &url) const |
| virtual bool | deleteCookie(const QNetworkCookie &cookie) |
| virtual bool | insertCookie(const QNetworkCookie &cookie) |
| virtual bool | setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) |
| virtual bool | updateCookie(const QNetworkCookie &cookie) |
プロテクトされた関数
| QList<QNetworkCookie> | allCookies() const |
| void | setAllCookies(const QList<QNetworkCookie> &cookieList) |
| virtual bool | validateCookie(const QNetworkCookie &cookie, const QUrl &url) const |
詳細な説明
クッキーとは、HTTP のようなステートレスなプロトコルが、リクエスト間で永続的な情報を維持するために使用する小さな情報片のことです。
クッキーは、リモートサーバーがリクエストに応答する際に設定され、その後のリクエストが送信される際には、同じクッキーが返送されることが期待されます。
Cookie Jar は、以前のリクエストで設定されたすべての Cookie を保持するオブジェクトです。Web ブラウザは、アプリケーションの起動間でも永続的な Cookie を保持するために、Cookie Jar をディスクに保存します。
QNetworkCookieJar は永続的な保存機能を実装しておらず、クッキーをメモリ内に保持するのみです。QNetworkCookieJar オブジェクトが破棄されると、そこに保持されていたすべてのクッキーも破棄されます。クッキーを保存したい場合は、このクラスを派生させ、独自の保存形式でディスクへの保存を実装する必要があります。
このクラスは、クッキー仕様で推奨されている基本的なセキュリティのみを実装しており、クッキーの受け入れポリシーは実装していません(どのリクエストによって設定されたクッキーもすべて受け入れます)。これらのルールを上書きするには、cookiesForUrl() およびsetCookiesFromUrl() 仮想関数を再実装する必要があります。これらの関数は、QNetworkReply およびQNetworkAccessManager が新しいクッキーを検出したとき、およびクッキーを必要としたときに呼び出されます。
QNetworkCookie 、QNetworkAccessManager 、QNetworkReply 、QNetworkRequest 、およびQNetworkAccessManager::setCookieJar()も参照してください 。
メンバ関数のドキュメント
[explicit] QNetworkCookieJar::QNetworkCookieJar(QObject *parent = nullptr)
QNetworkCookieJar オブジェクトを作成し、親オブジェクトを `parent` に設定します。
クッキージャーは空の状態に初期化されます。
[virtual noexcept] QNetworkCookieJar::~QNetworkCookieJar()
このクッキージャーオブジェクトを破棄し、そこに保存されているすべてのクッキーを削除します。QNetworkCookieJar のデフォルトの実装では、クッキーはディスクに保存されません。
クッキーをディスクに保存する必要がある場合は、QNetworkCookieJar を継承し、自身でクッキーをディスクに保存する必要があります。
[protected] QList<QNetworkCookie> QNetworkCookieJar::allCookies() const
このクッキージャーに保存されているすべてのクッキーを返します。この関数は、派生クラスがクッキーをディスクに保存したり、クッキーの有効期限やその他のポリシーを実装したりするのに適しています。
setAllCookies() およびcookiesForUrl()も参照してください 。
[virtual] QList<QNetworkCookie> QNetworkCookieJar::cookiesForUrl(const QUrl &url) const
url へのリクエストが送信される際に、追加されるクッキーを返します。この関数は、デフォルトのQNetworkAccessManager::createRequest() によって呼び出され、この関数が返すクッキーが送信されるリクエストに追加されます。
同じ名前でパスが異なるクッキーが複数見つかった場合、パスが長いものが短いものより先に返されます。つまり、この関数はパスの長さが長い順に降順で並べ替えたクッキーを返します。
デフォルトのQNetworkCookieJar クラスは、ごく基本的なセキュリティポリシーのみを実装しています(クッキーのドメインとパスがレスポンスのものと一致することを確認します)。独自のアルゴリズムを用いてセキュリティポリシーを強化するには、cookiesForUrl()をオーバーライドしてください。
setCookiesFromUrl() およびQNetworkAccessManager::setCookieJar()も参照してください 。
[virtual] bool QNetworkCookieJar::deleteCookie(const QNetworkCookie &cookie)
cookie と同じ識別子を持つクッキーを、クッキージャーから削除します。
クッキーが削除された場合はtrue を返し、それ以外の場合は false を返します。
QNetworkCookie::hasSameIdentifier()も参照してください 。
[virtual] bool QNetworkCookieJar::insertCookie(const QNetworkCookie &cookie)
このクッキージャーに「cookie 」を追加します。
cookie が追加された場合はtrue を返し、そうでない場合はfalseを返します。
クッキージャーに同じ識別子を持つクッキーがすでに存在する場合、そのクッキーは上書きされます。
[protected] void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> &cookieList)
このクッキージャーが保持する内部のクッキー一覧を `cookieList` に設定します。この関数は、派生クラスが永続ストレージからのクッキーの読み込みや、setCookiesFromUrl() を再実装して独自のクッキー受け入れポリシーを実装するのに適しています。
allCookies() およびsetCookiesFromUrl()も参照してください 。
[virtual] bool QNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
cookieList に含まれるクッキーを、このクッキージャーに追加します。追加される前に、クッキーは正規化されます。
url に対して 1 つ以上のクッキーが設定されている場合はtrue を返し、そうでない場合は false を返します。
クッキー・ジャーに既にクッキーが存在する場合、cookieList 内のクッキーによって上書きされます。
デフォルトの `QNetworkCookieJar ` クラスは、ごく基本的なセキュリティポリシーのみを実装しています(クッキーのドメインとパスがレスポンスのものと一致することを確認するだけです)。独自のアルゴリズムでセキュリティポリシーを強化するには、`setCookiesFromUrl()` をオーバーライドしてください。
また、QNetworkCookieJar にはクッキー・ジャーの最大サイズが設定されていません。新しいクッキーのためのスペースを確保するために、古いクッキーを破棄するようこの関数を再実装してください。
cookiesForUrl()、QNetworkAccessManager::setCookieJar()、およびQNetworkCookie::normalize()も参照してください 。
[virtual] bool QNetworkCookieJar::updateCookie(const QNetworkCookie &cookie)
このクッキージャー内に、cookie と同じ識別子を持つクッキーが存在する場合、そのクッキーが更新されます。この関数はinsertCookie() を使用します。
cookie が更新された場合はtrue を返し、jar内のクッキーにcookie の識別子と一致するものがない場合はfalseを返します。
QNetworkCookie::hasSameIdentifier()も参照してください 。
[virtual protected] bool QNetworkCookieJar::validateCookie(const QNetworkCookie &cookie, const QUrl &url) const
cookie のドメインとパスが有効な場合は `true ` を返し、そうでない場合は `false` を返します。url パラメータは、クッキーで指定されたドメインが許可されているかどうかを判断するために使用されます。
© 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.