Класс QHttp2Configuration
Класс QHttp2Configuration управляет параметрами и настройками HTTP/2. Подробнее...
| Заголовок: | #include <QHttp2Configuration> |
| qmake: | QT += network |
| С версии: | Qt 5.14 |
Этот класс был представлен в Qt 5.14.
Примечание: Все функции в этом классе являются перевхоимо-безопасными.
Публичные функции
| QHttp2Configuration(QHttp2Configuration &&other) | |
| QHttp2Configuration(const QHttp2Configuration &other) | |
| QHttp2Configuration() | |
| QHttp2Configuration & | operator=(QHttp2Configuration &&other) |
| QHttp2Configuration & | operator=(const QHttp2Configuration &other) |
| ~QHttp2Configuration() | |
| bool | huffmanCompressionEnabled() const |
| unsigned int | maxFrameSize() const |
| bool | serverPushEnabled() const |
| unsigned int | sessionReceiveWindowSize() const |
| void | setHuffmanCompressionEnabled(bool enable) |
| bool | setMaxFrameSize(unsigned int size) |
| void | setServerPushEnabled(bool enable) |
| bool | setSessionReceiveWindowSize(unsigned int size) |
| bool | setStreamReceiveWindowSize(unsigned int size) |
| unsigned int | streamReceiveWindowSize() const |
| void | swap(QHttp2Configuration &other) |
Подробное описание
QHttp2Configuration управляет параметрами и настройками HTTP/2, которые QNetworkAccessManager будет использовать для отправки запросов и обработки ответов, когда включен протокол HTTP/2.
Параметры HTTP/2, которые в настоящее время поддерживает QHttp2Configuration:
- Размер окна сессии для управления потоком на уровне соединения. Будет отправлен удалённому узлу при необходимости в виде фреймов 'WINDOW_UPDATE' на потоке с идентификатором 0.
- Размер окна приема потока для управления потоком на уровне потока. Отправляется как параметр 'SETTINGS_INITIAL_WINDOW_SIZE' в начальном фрейме SETTINGS и, при необходимости, будут отправлены фреймы 'WINDOW_UPDATE' на потоки, которые открывает QNetworkAccessManager.
- Максимальный размер фрейма. Этот параметр ограничивает максимальную нагрузку фрейма, который может поступить от удалённого узла. Отправляется QNetworkAccessManager как параметр 'SETTINGS_MAX_FRAME_SIZE' в начальном фрейме 'SETTINGS'.
- Серверная отправка. Позволяет включить или выключить серверную отправку. Отправляется как параметр 'SETTINGS_ENABLE_PUSH' в начальном фрейме 'SETTINGS'.
Класс QHttp2Configuration также управляет тем, использует ли алгоритм сжатия заголовков (HPACK) дополнительное кодирование Хаффмана для сжатия строк.
Примечание: Настройка должна быть установлена до отправки первого запроса на данный хост (и, следовательно, установления сессии HTTP/2).
Примечание: Подробности о управлении потоком, серверной отправке и 'SETTINGS' можно найти в RFC 7540. Различные режимы и параметры алгоритма сжатия HPACK описаны в RFC 7541.
См. также QNetworkRequest::setHttp2Configuration(), QNetworkRequest::http2Configuration(), и QNetworkAccessManager.
Документация по функциям-членам
QHttp2Configuration::QHttp2Configuration(QHttp2Configuration &&other)
Перемещающее конструктор QHttp2Configuration из other
QHttp2Configuration::QHttp2Configuration(const QHttp2Configuration &other)
Копирующий конструктор QHttp2Configuration.
QHttp2Configuration::QHttp2Configuration()
Конструктор по умолчанию объекта QHttp2Configuration.
Такая конфигурация имеет следующие значения:
- Серверная отправка отключена
- Сжатие строк Хаффмана включено
- Размер окна для управления потоком на уровне соединения составляет 65535 октетов
- Размер окна приема потока составляет 65535 октетов
- Размер фрейма составляет 16384 октетов
QHttp2Configuration &QHttp2Configuration::operator=(QHttp2Configuration &&other)
Перемещающее присваивание для QHttp2Configuration.
QHttp2Configuration &QHttp2Configuration::operator=(const QHttp2Configuration &other)
Копирующее присваивание для QHttp2Configuration.
QHttp2Configuration::~QHttp2Configuration()
Деструктор.
bool QHttp2Configuration::huffmanCompressionEnabled() const
Возвращает true если кодирование Хаффмана в HPACK включено.
См. также setHuffmanCompressionEnabled.
unsigned int QHttp2Configuration::maxFrameSize() const
Максимальный размер полезной нагрузки фреймов HTTP/2. Значение по умолчанию (начальное) — 16384 октета.
См. также setMaxFrameSize().
bool QHttp2Configuration::serverPushEnabled() const
Возвращает true, если серверная отправка включена.
Примечание: По умолчанию QNetworkAccessManager отключает серверную отправку через фрейм 'SETTINGS'.
См. также setServerPushEnabled.
unsigned int QHttp2Configuration::sessionReceiveWindowSize() const
Возвращает размер окна для управления потоком на уровне соединения. Значение по умолчанию, которое будет использовать QNetworkAccessManager — 2147483647 октетов.
См. также setSessionReceiveWindowSize().
void QHttp2Configuration::setHuffmanCompressionEnabled(bool enable)
Если enable равно true, сжатие HPACK дополнительно сжимает строки с помощью кодирования Хаффмана. Включено по умолчанию.
Примечание: Этот параметр влияет только на фреймы 'HEADERS', которые отправляет QNetworkAccessManager.
См. также huffmanCompressionEnabled.
bool QHttp2Configuration::setMaxFrameSize(unsigned int size)
Устанавливает максимальный размер фрейма, который QNetworkAccessManager будет рекламировать серверу при отправке начального фрейма SETTINGS.
Примечание: Хотя этот size должен быть в диапазоне от 16384 до 16777215 включительно, фактический размер полезной нагрузки во фреймах, которые несут полезную нагрузку, может быть меньше 16384.
См. также maxFrameSize().
void QHttp2Configuration::setServerPushEnabled(bool enable)
Если enable равно true, удалённый сервер потенциально может использовать серверное отображение для отправки ответов заранее.
См. также serverPushEnabled.
bool QHttp2Configuration::setSessionReceiveWindowSize(unsigned int size)
Устанавливает размер окна для управления потоком на уровне соединения. size не может быть 0 и не должно превышать 2147483647 октетов.
См. также sessionReceiveWindowSize.
bool QHttp2Configuration::setStreamReceiveWindowSize(unsigned int size)
Устанавливает размер окна для управления потоком на уровне потока. size не может быть 0 и не должно превышать 2147483647 октетов.
См. также streamReceiveWindowSize.
unsigned int QHttp2Configuration::streamReceiveWindowSize() const
Возвращает размер окна для управления потоком на уровне потока. Значение по умолчанию, которое будет использовать QNetworkAccessManager, составляет 21474836 октетов.
См. также setStreamReceiveWindowSize().
void QHttp2Configuration::swap(QHttp2Configuration &other)
Меняет местами эту конфигурацию с конфигурацией other.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qhttp2configuration.html