Класс 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 } |
Открытые функции
| 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 |
| 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 | 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, он уже распарсен.
Этот класс реализует cookies, как описано в первоначальной спецификации 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().
Документация по функциям-членам
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 «secure» могут содержать конфиденциальную информацию и не должны отправляться по незащищённым подключениям.
См. также setSecure().
bool QNetworkCookie::isSessionCookie() const
Возвращает true если этот файл cookie является файлом cookie сессии. Файл cookie сессии — это файл cookie без даты истечения срока действия, что означает, что он должен быть удалён, когда заканчивается понятие сессии приложения (обычно, при выходе из приложения).
См. также expirationDate() и setExpirationDate().
QByteArray QNetworkCookie::name() const
Возвращает имя этого файла cookie. Единственным обязательным полем файла 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().
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. Обратите внимание, что установка имени файла cookie на пустой QByteArray сделает этот файл cookie недействительным.
void QNetworkCookie::setPath(const QString &path)
Устанавливает путь, связанный с этим файлом cookie, на path.
См. также path().
void QNetworkCookie::setSecure(bool enable)
Устанавливает флаг безопасности этого файла cookie на enable.
Файлы cookie «secure» могут содержать конфиденциальную информацию и не должны отправляться по незащищённым подключениям.
См. также isSecure().
void QNetworkCookie::setValue(const QByteArray &value)
Устанавливает значение этого файла cookie на value.
[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 если этот файл cookie не равен other.
См. также operator==().
[since 5.0] bool QNetworkCookie::operator==(const QNetworkCookie &other) const
Возвращает true если этот файл cookie равен other. Эта функция возвращает true только если все поля файла cookie совпадают.
Однако в некоторых контекстах два файла cookie с одинаковым именем могут считаться равными.
Эта функция была добавлена в 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.0/qnetworkcookie.html