Класс 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'.
- Серверная отправка. Позволяет включить или отключить серверную отправку. Отправляется как параметр '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)
Перемещающая присваивание 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, если серверная отправка была включена.
Примечание: По умолчанию 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.
Возвращает 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.0/qhttp2configuration.html