Spec-Zone.ru › Qt 6.1

Класс QNetworkCookie

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

Заголовок: #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)

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

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

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

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

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

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

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

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

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

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

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

Постоянная Значение Описание
QNetworkCookie::NameAndValueOnly 0 заставляет toRawForm() возвращать только часть «NAME=VALUE» cookie, как это подходит для отправки обратно на сервер в заголовке «Cookie:» запроса клиента. Несколько cookies разделены точкой с запятой в поле заголовка «Cookie:».
QNetworkCookie::Full 1 заставляет toRawForm() возвращать полное содержимое cookie, как это подходит для отправки клиенту в заголовке «Set-Cookie:» сервера.

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

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

[since 6.1] Перечисление QNetworkCookie::SameSite

Постоянная Значение Описание
QNetworkCookie::SameSite::Default 0 SameSite не задан. Браузер может интерпретировать его как None или Lax.
QNetworkCookie::SameSite::None 1 Cookies могут быть отправлены во всех контекстах. Раньше это было значением по умолчанию, но в современных браузерах значением по умолчанию стал Lax, и теперь требуется, чтобы cookie был и безопасным, и устанавливал SameSite=None.
QNetworkCookie::SameSite::Lax 2 Cookies отправляются в запросах к первой стороне и GET-запросах, инициированных сторонним сайтом. Это значение по умолчанию в современных браузерах (с середины 2020 года).
QNetworkCookie::SameSite::Strict 3 Cookies будут отправлены только в контексте первой стороны.

Это перечисление было добавлено или изменено в Qt 6.1.

См. также setSameSitePolicy() и sameSitePolicy().

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

QNetworkCookie::QNetworkCookie(const QNetworkCookie &other)

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

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

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

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

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

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

QNetworkCookie::~QNetworkCookie()

Удаляет этот объект QNetworkCookie.

QString QNetworkCookie::domain() const

Возвращает домен, ассоциированный с этим cookie. Соответствует полю «domain» в строке cookie.

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

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

QDateTime QNetworkCookie::expirationDate() const

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

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

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

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

Возвращает true , если у данного cookie есть та же кортеж идентификатора, что и у other. Кортеж идентификатора состоит из имени, домена и пути.

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

bool QNetworkCookie::isHttpOnly() const

Возвращает true , если для данного cookie включён флаг «HttpOnly».

Cookie с флагом «HttpOnly» может быть установлен и получен только сетевыми запросами и ответами; т. е., протоколом HTTP. Он недоступен для скриптов, выполняемых в браузерах.

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

bool QNetworkCookie::isSecure() const

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

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

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

bool QNetworkCookie::isSessionCookie() const

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

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

QByteArray QNetworkCookie::name() const

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

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

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

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

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

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

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

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

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

QString QNetworkCookie::path() const

Возвращает путь, связанный с этим cookie. Соответствует полю «path» в строке cookie.

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

[since 6.1] QNetworkCookie::SameSite QNetworkCookie::sameSitePolicy() const

Возвращает параметр «SameSite», если он указан в строке cookie, SameSite::Default если отсутствует.

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

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

void QNetworkCookie::setDomain(const QString &domain)

Устанавливает домен, связанный с этим cookie, равным domain.

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

void QNetworkCookie::setExpirationDate(const QDateTime &date)

Устанавливает дату истечения срока действия данного cookie равной date. Установка невалидной даты истечения срока действия сделает данный cookie cookie сессии.

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

void QNetworkCookie::setHttpOnly(bool enable)

Устанавливает флаг «HttpOnly» данного cookie в значение enable.

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

void QNetworkCookie::setName(const QByteArray &cookieName)

Устанавливает имя данного cookie равным cookieName. Установка пустого QByteArray в качестве имени сделает cookie невалидным.

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

void QNetworkCookie::setPath(const QString &path)

Устанавливает путь, связанный с данным cookie, равным path.

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

[since 6.1] void QNetworkCookie::setSameSitePolicy(QNetworkCookie::SameSite sameSite)

Устанавливает параметр «SameSite» данного cookie в значение sameSite.

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

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

void QNetworkCookie::setSecure(bool enable)

Устанавливает флаг безопасности данного cookie в значение enable.

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

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

void QNetworkCookie::setValue(const QByteArray &value)

Устанавливает значение данного cookie в значение value.

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

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

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

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

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

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

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

QByteArray QNetworkCookie::value() const

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

Значения пар имя-значение cookie считаются неявными для приложения: то есть их значения ничего не означают.

См. также 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.1/qnetworkcookie.html

Spec-Zone.ru

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