Класс 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'.
- Серверный push. Позволяет включить или отключить серверный push. Отправляется как параметр 'SETTINGS_ENABLE_PUSH' в начальный кадр 'SETTINGS'.
Класс QHttp2Configuration также управляет тем, использует ли алгоритм сжатия заголовков (HPACK) в дополнение кодирование Хаффмана для сжатия строк.
Примечание: Настройки должны быть установлены до отправки первого запроса на данный хост (и, таким образом, установления сессии HTTP/2).
Примечание: Подробности о управлении потоком, серверном push и '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 по умолчанию.
Такие настройки имеют следующие значения:
- Серверный push отключен
- Сжатие строк Хаффмана включено
- Размер окна для управления потоком на уровне соединения составляет 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, если серверный push был включен.
Примечание: По умолчанию QNetworkAccessManager отключает серверный push через кадр '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.14/qhttp2configuration.html