Qt HTTP サーバ
Qt HTTP Server は、アプリケーションに HTTP サーバー機能を組み込むことをサポートします。一般的な使用例としては、アプリケーションの機能を REST API 経由で公開したり、信頼された環境のデバイスを HTTP 経由でも設定できるようにしたりすることが挙げられます。制限事項については、「制限事項とセキュリティ」を参照してください。
概要
Qt HTTP Server は、RFC 2616に基づいた軽量な HTTP サーバをアプリケーションに組み込むためのビルディングブロックを提供します。送受信されるメッセージや、HTTP サーバの様々な部分のクラスがあります。
HTTPサーバーは、QAbstractHttpServer クラスをサブクラス化し、handleRequest() 関数をオーバーライドすることで作成できます。QAbstractHttpServer クラスは、既存のQTcpServer 、QSslServer 、またはQLocalServer にバインドするための関数を提供します。QHttpServerRouter クラスを使用すると、着信 URL に基づく callable へのディスパッチを簡略化できます。
QHttpServer クラスを使用すると、さらに簡略化できます。QHttpServer クラスはQAbstractHttpServer のサブクラスであり、オーバーロードされた route 関数を定義して、さまざまな着信URLに callable をバインドし、addAfterRequestHandler() 関数を定義して、応答をさらに処理する。
ランタイム・ロギングは、ここで説明されているように設定できる。
制限とセキュリティ
Qt HTTP Server には、汎用の HTTP サーバーが持つような高度な機能や最適化はありません。また、ネットワーク上の様々な攻撃ベクトルに関しても、同じように精査されていません。そのため、Qt HTTP Server はローカル接続または信頼できるネットワークでのみ使用し、ポートをインターネットに公開しないでください。
基本的なセキュリティ対策として、HTTPSサポートを追加することは可能です。Qt が TLS サポート付きでコンパイルされている場合、QAbstractHttpServer とそのサブクラスをQSslServer オブジェクトにバインドすることで、トランスポート・レイヤー・セキュリティを扱うことができます。
モジュールの使用
Qt モジュールを使用するには、モジュールライブラリを直接、または他の依存関係を通してリンクする必要があります。CMakeやqmakeなど、いくつかのビルドツールはこのための専用サポートを持っています。
CMake でのビルド
find_package()
コマンドを使って、Qt6 パッケージの中から必要なモジュールコンポーネントを探します:
find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
CMake によるビルドの概要も参照してください。
qmakeによるビルド
モジュールをqmakeでビルドするように設定するには、プロジェクトの.proファイルにQT変数の値としてモジュールを追加します:
QT += httpserver
ライセンス
Qt HTTP Server はThe Qt Company の商用ライセンスで利用できます。また、GNU General Public License, version 3 の下でも利用可能です。詳細はQt Licensingを参照してください。
リファレンス
サンプル
このモジュールは、API を使用するためのガイドとして、以下のサンプルを提供します。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。