QHttp2Configuration Class

QHttp2Configuration クラスは HTTP/2 のパラメータと設定を制御します。詳細...

Header: #include <QHttp2Configuration>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QHttp2Configuration()
QHttp2Configuration(const QHttp2Configuration &other)
QHttp2Configuration(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 &operator=(QHttp2Configuration &&other)
QHttp2Configuration &operator=(const QHttp2Configuration &other)
bool operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)
bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

詳細な説明

QHttp2Configuration は、HTTP/2 プロトコルが有効になっているときにQNetworkAccessManager がリクエストの送信とレスポンスの処理に使用する HTTP/2 パラメータと設定を制御します。

QHttp2Configuration が現在サポートしている HTTP/2 パラメータには以下のものがあります:

  • 接続レベルのフロー制御のためのセッションウィンドウサイズ。識別子 0 を持つストリーム上の 'WINDOW_UPDATE' フレームとして、必要なときにリモートピアに送信されます。
  • ストリームレベルのフロー制御のための、ストリーム受信ウィンドウサイズ。最初の SETTINGS フレームの 'SETTINGS_INITIAL_WINDOW_SIZE' パラメータとして送信され、QNetworkAccessManager がオープンしたストリームでは必要に応じて 'WINDOW_UPDATE' フレームが送信されます。
  • 最大フレームサイズ。このパラメータは、リモートピアから送信されるフレームの最大ペイロードを制限します。QNetworkAccessManager が最初の 'SETTINGS' フレームの 'SETTINGS_MAX_FRAME_SIZE' パラメータとして送信します。
  • サーバープッシュ。サーバープッシュを有効または無効にします。最初の 'SETTINGS' フレームの 'SETTINGS_ENABLE_PUSH' パラメータとして渡されます。

QHttp2Configuration クラスは、ヘッダ圧縮アルゴリズム (HPACK) に加えて 文字列圧縮にハフマンコーディングを使用するかどうかも制御します。

注意: 設定は、最初のリクエストが指定されたホストに送信される (つまり HTTP/2 セッションが確立される) 前に設定されなければなりません。

注: フロー制御、サーバープッシュ、'SETTINGS'に関する詳細は、RFC 7540に記載されています。HPACK 圧縮アルゴリズムのさまざまなモードとパラメータはRFC 7541 に記述されています。

QNetworkRequest::setHttp2Configuration()、QNetworkRequest::http2Configuration()、QNetworkAccessManagerも参照のこと

メンバ関数のドキュメント

QHttp2Configuration::QHttp2Configuration()

Default は QHttp2Configuration オブジェクトを構築します。

このような設定は以下の値を持ちます:

  • サーバプッシュは無効
  • ハフマン文字列圧縮が有効
  • 接続レベルのフロー制御のウィンドウサイズは 65535 オクテット。
  • ストリームレベルのフロー制御のウィンドウサイズは 65535 オクテット
  • フレーム・サイズは 16384 オクテット

QHttp2Configuration::QHttp2Configuration(const QHttp2Configuration &other)

Copy - この QHttp2Configuration を構成します。

[noexcept] QHttp2Configuration::QHttp2Configuration(QHttp2Configuration &&other)

から移動します。other

[noexcept] QHttp2Configuration::~QHttp2Configuration()

デストラクタ。

bool QHttp2Configuration::huffmanCompressionEnabled() const

HPACK のハフマンコーディングが有効な場合はtrue を返す。

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)

enabletrue の場合、HPACK 圧縮はさらにハフマン符号化を使って文字列を圧縮する。デフォルトでは有効になっています。

注意: このパラメータはQNetworkAccessManager が送信する 'HEADERS' フレームのみに影響する。

huffmanCompressionEnabledも参照してください

bool QHttp2Configuration::setMaxFrameSize(unsigned int size)

QNetworkAccessManager が最初の SETTINGS フレームを送信する際にサーバに通知する最大フレームサイズを設定します。

注意: このsize は 16384 から 16777215 の範囲内であることが要求されますが、ペイロードを運ぶフレームの実際のペイロードサイズは 16384 より小さいかもしれません。

成功した場合はtrue を返し、そうでない場合はfalse を返す。

maxFrameSize()も参照のこと

void QHttp2Configuration::setServerPushEnabled(bool enable)

enabletrue の場合、リモートサーバーは、server push を使って事前に応答を送信できる可能性がある。

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 が使用するデフォルト値は 214748364 オクテットである (RFC 7540 参照)。

setStreamReceiveWindowSize()も参照の こと。

[noexcept] void QHttp2Configuration::swap(QHttp2Configuration &other)

この構成をother 構成と入れ替える。

[noexcept] QHttp2Configuration &QHttp2Configuration::operator=(QHttp2Configuration &&other)

Move-other をこのQHttp2Configuration に割り当てる。

QHttp2Configuration &QHttp2Configuration::operator=(const QHttp2Configuration &other)

Copy-このQHttp2Configurationother を割り当てます。

関連する非会員

[noexcept] bool operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

lhsrhs が同じ HTTP/2 パラメータセットを持っていない場合、true を返します。

[noexcept] bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs)

lhsrhs が同じ HTTP/2 パラメータセットを持っている場合、true を返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。