Класс QHttp2Configuration
Класс QHttp2Configuration управляет параметрами и настройками HTTP/2. Подробнее...
| Заголовок: | #include <QHttp2Configuration> |
| CMake: | find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| С тех пор: | 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) |
Связанные нечлены
| bool | operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) |
| bool | operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) |
Подробное описание
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)
Перемещающее присваивание other этому QHttp2Configuration.
QHttp2Configuration &QHttp2Configuration::operator=(const QHttp2Configuration &other)
Копирующее присваивание 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.
Возвращает true при успехе, false в противном случае.
См. также maxFrameSize().
void QHttp2Configuration::setServerPushEnabled(bool enable)
Если enable равно true, удаленный сервер потенциально может использовать серверный пуш для отправки ответов заранее.
См. также serverPushEnabled.
bool QHttp2Configuration::setSessionReceiveWindowSize(unsigned int size)
Устанавливает размер окна для управления потоком на уровне соединения. size не может быть 0 и не должно превышать 2147483647 октетов.
Возвращает true при успехе, false в противном случае.
См. также sessionReceiveWindowSize.
bool QHttp2Configuration::setStreamReceiveWindowSize(unsigned int size)
Устанавливает размер окна для управления потоком на уровне потока. size не может быть 0 и не должно превышать 2147483647 октетов.
Возвращает true при успехе, false в противном случае.
См. также streamReceiveWindowSize.
unsigned int QHttp2Configuration::streamReceiveWindowSize() const
Возвращает размер окна для управления потоком на уровне потока. Значение по умолчанию, которое будет использовать QNetworkAccessManager, составляет 21474836 октетов.
См. также setStreamReceiveWindowSize().
void QHttp2Configuration::swap(QHttp2Configuration &other)
Меняет местами эту конфигурацию с конфигурацией other.
Связанные нечленные функции
bool operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)
Возвращает true если lhs и rhs не имеют одинакового набора параметров HTTP/2.
bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)
Возвращает true если lhs и rhs имеют одинаковый набор параметров HTTP/2.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qhttp2configuration.html