Spec-Zone.ru › Qt

Класс QNetworkCookie

Класс QNetworkCookie хранит один сетевой куки. Подробнее...

Заголовок: #include <QNetworkCookie>
CMake: find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
  • Список всех членов, включая унаследованные

Типы публичного интерфейса

Перечисление RawForm { NameAndValueOnly, Full }
Перечисление SameSite { Default, None, Lax, Strict }

Публичные функции

QNetworkCookie(const QNetworkCookie &other)
QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())
QNetworkCookie & operator=(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
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)
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
bool operator==(const QNetworkCookie &other) const

Статические публичные члены

QList<QNetworkCookie> parseCookies(const QByteArray &cookieString)

Подробное описание

Куки — это небольшие фрагменты информации, которые используются бессостоятельными протоколами, такими как HTTP, для сохранения некоторой постоянной информации между запросами.

Куки устанавливаются удалённым сервером в ответ на запрос, и ожидается, что тот же куки будет отправлен обратно при последующих запросах.

QNetworkCookie хранит один такой куки, полученный из сети. Куки имеет имя и значение, но они являются непрозрачными для приложения (то есть, информация, хранящаяся в них, не имеет смысла для приложения). Куки связан с именем пути и доменом, которые указывают, когда куки должен быть снова отправлен серверу.

Куки также может иметь дату истечения срока действия, указывающую на его действительность. Если дата истечения срока действия отсутствует, куки считается «сессионным» и должен быть удалён при завершении работы приложения (или по окончании сессии).

QNetworkCookie предоставляет способ разбора куки из формата заголовка HTTP с помощью функции QNetworkCookie::parseCookies(). Однако, при получении из QNetworkReply, куки уже разборён.

Этот класс реализует куки, как описано в начальном спецификации куки Netscape, которая несколько похожа на спецификацию RFC 2109, плюс расширение "HttpOnly". Более поздняя спецификация RFC 2965 (которая использует заголовок Set-Cookie2) не поддерживается.

См. также QNetworkCookieJar, QNetworkRequest и QNetworkReply.

Документация типов членов

Перечисление QNetworkCookie::RawForm

Это перечисление используется с функцией toRawForm(), чтобы указать, какой вид куки требуется вернуть.

Константа Значение Описание
QNetworkCookie::NameAndValueOnly 0 приводит к возвращению функцией toRawForm() только части "NAME=VALUE" куки, что подходит для отправки обратно на сервер в заголовке "Cookie:" запроса клиента. Несколько куки разделяются точкой с запятой в поле заголовка "Cookie:".
QNetworkCookie::Full 1 приводит к возвращению функцией toRawForm() полного содержимого куки, что подходит для отправки клиенту в заголовке "Set-Cookie:" сервера.

Обратите внимание, что только полная форма куки может быть проанализирована обратно в исходное содержимое.

См. также toRawForm() и parseCookies().

[since 6.1] перечисление 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().

Документация функций-членов

QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)

Создаёт новый объект QNetworkCookie, копируя содержимое other.

QNetworkCookie::QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray())

Создаёт новый объект QNetworkCookie, инициализируя имя куки на name, а значение — на value.

Кука считается валидной только если у неё есть имя. Однако значение является нечитаемым для приложения, и пустое значение может иметь значение для удалённого сервера.

QNetworkCookie &QNetworkCookie::operator=(const QNetworkCookie &other)

Копирует содержимое объекта QNetworkCookie other в этот объект.

QNetworkCookie::~QNetworkCookie()

Уничтожает этот объект QNetworkCookie.

QString QNetworkCookie::domain() const

Возвращает домен, связанный с этой кукой. Это соответствует полю "domain" строки куки.

Обратите внимание, что домен здесь может начинаться с точки, что не является допустимым именем хоста. Однако это означает, что данная кука соответствует всем именам хостов, оканчивающимся на указанный домен.

См. также setDomain().

QDateTime QNetworkCookie::expirationDate() const

Возвращает дату истечения срока действия этой куки. Если данная кука — кука сессии, возвращаемое значение QDateTime будет недопустимым. Если дата истечения срока действия в прошлом, эта кука уже истекла и больше не должна отправляться на удалённый сервер.

Дата истечения срока действия соответствует параметрам записи "expires" в строке куки.

См. также isSessionCookie() и setExpirationDate().

bool QNetworkCookie::hasSameIdentifier(const QNetworkCookie &other) const

Возвращает true , если у этой куки такая же кортеж идентификатора, как и у other. Кортеж идентификатора состоит из имени, домена и пути.

См. также operator==().

bool QNetworkCookie::isHttpOnly() const

Возвращает true , если для этой куки включён флаг "HttpOnly".

Кука "HttpOnly" устанавливается и извлекается только запросами и ответами сети; т.е., протоколом HTTP. Она недоступна для скриптов, выполняемых в браузерах.

См. также isSecure().

bool QNetworkCookie::isSecure() const

Возвращает true , если в строке куки был указан параметр "secure", в противном случае — false.

Безопасные куки могут содержать конфиденциальную информацию и не должны повторно отправляться по незащищённым соединениям.

См. также setSecure().

bool QNetworkCookie::isSessionCookie() const

Возвращает true , если эта кука — кука сессии. Кука сессии — это кука без даты истечения срока действия, что означает, что она должна быть удалена, когда сессия приложения завершена (обычно, при выходе из приложения).

См. также expirationDate() и setExpirationDate().

QByteArray QNetworkCookie::name() const

Возвращает имя этой куки. Единственным обязательным полем куки является её имя, без которого она не считается валидной.

См. также setName() и value().

[since 5.0] void QNetworkCookie::normalize(const QUrl &url)

Эта функция нормализует путь и домен куки, если они были ранее пусты. Параметр url используется для определения правильного домена и пути.

Эта функция была введена в Qt 5.0.

[static] QList<QNetworkCookie> QNetworkCookie::parseCookies(const QByteArray &cookieString)

Парсит строку куки cookieString, полученную от сервера в заголовке "Set-Cookie:". При ошибке парсинга функция возвращает пустой список.

Так как заголовок HTTP может установить более одной куки одновременно, эта функция возвращает QList<QNetworkCookie>, по одной куке для каждой успешно разобранной.

См. также 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 сделает эту куку недействительной.

См. также name() и value().

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.

См. также value() и name().

[since 5.0] void QNetworkCookie::swap(QNetworkCookie &other)

Меняет местами эту куку с other. Эта функция очень быстрая и никогда не терпит неудачу.

Эта функция была введена в Qt 5.0.

QByteArray QNetworkCookie::toRawForm(QNetworkCookie::RawForm form = Full) const

Возвращает исходную форму этой куки QNetworkCookie. Возвращаемый QByteArray подходит для заголовка HTTP, как в ответе сервера (заголовок Set-Cookie), так и в запросе клиента (заголовок Cookie). Вы можете выбрать один из двух форматов, используя form.

См. также parseCookies().

QByteArray QNetworkCookie::value() const

Возвращает значение этой куки, как указано в строке куки. Обратите внимание, что кука всё ещё валидна, если её значение пустое.

Пара имени-значения куки считаются нечитаемыми для приложения: т.е. их значения не имеют какого-либо смысла.

См. также setValue() и name().

bool QNetworkCookie::operator!=(const QNetworkCookie &other) const

Возвращает true если этот куки не равен other.

См. также operator==().

[since 5.0] bool QNetworkCookie::operator==(const QNetworkCookie &other) const

Возвращает true если этот куки равен other. Данная функция возвращает true только если все поля куки совпадают.

Однако в некоторых контекстах два куки с одинаковым именем могут считаться равными.

Данная функция была добавлена в Qt 5.0.

См. также operator!=() и hasSameIdentifier().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qnetworkcookie.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API