Qt HTTP Server
Qt HTTP Server unterstützt die Integration von HTTP-Serverfunktionen in eine Anwendung. Übliche Anwendungsfälle sind die Offenlegung der Anwendungsfunktionalität über REST-APIs oder die Konfigurierung von Geräten in einer vertrauenswürdigen Umgebung auch über HTTP. Die Einschränkungen sind unter Einschränkungen und Sicherheit beschrieben.
Überblick
Qt HTTP Server bietet Bausteine für die Einbettung eines leichtgewichtigen HTTP-Servers auf der Grundlage von RFC 2616 in eine Anwendung. Es gibt Klassen für die gesendeten und empfangenen Nachrichten und für die verschiedenen Teile eines HTTP-Servers.
Ein HTTP-Server kann durch Unterklassifizierung der Klasse QAbstractHttpServer und Überschreibung der Funktion handleRequest() erstellt werden. Die Klasse QAbstractHttpServer bietet Funktionen zum Binden an eine bestehende QTcpServer, QSslServer oder QLocalServer. Das Dispatching auf Callables, die auf eingehenden URLs basieren, kann durch die Verwendung der Klasse QHttpServerRouter vereinfacht werden.
Dies kann durch die Verwendung der Klasse QHttpServer noch weiter vereinfacht werden. Die Klasse QHttpServer ist eine Unterklasse von QAbstractHttpServer und definiert eine überladene Route-Funktion, um Callables an verschiedene eingehende URLs zu binden, sowie eine addAfterRequestHandler()-Funktion zur weiteren Verarbeitung der Antwort.
Die Laufzeitprotokollierung kann wie hier beschrieben konfiguriert werden.
Beschränkungen und Sicherheit
Qt HTTP Server verfügt nicht über viele der fortgeschrittenen Funktionen und Optimierungen, die HTTP-Servern für allgemeine Zwecke zur Verfügung stehen. Er wurde auch nicht so genau auf verschiedene Angriffsvektoren über das Netzwerk untersucht. Verwenden Sie Qt HTTP Server daher nur für lokale Verbindungen oder in einem vertrauenswürdigen Netzwerk und geben Sie die Ports nicht für das Internet frei.
Sie können jedoch HTTPS-Unterstützung als grundlegende Sicherheitsmaßnahme hinzufügen. Wenn Qt mit Unterstützung für TLS kompiliert ist, können Sie QAbstractHttpServer und seine Unterklassen an ein QSslServer Objekt binden und so die Handhabung von Transport Layer Security ermöglichen.
Verwendung des Moduls
Die Verwendung eines Qt-Moduls erfordert das Linken gegen die Modulbibliothek, entweder direkt oder über andere Abhängigkeiten. Mehrere Build-Tools bieten hierfür spezielle Unterstützung, darunter CMake und qmake.
Bauen mit CMake
Verwenden Sie den Befehl find_package()
, um die benötigten Modulkomponenten im Qt6-Paket zu finden:
find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
Siehe auch die Übersicht Bauen mit CMake.
Bauen mit qmake
Um das Modul für die Erstellung mit qmake zu konfigurieren, fügen Sie das Modul als Wert der QT-Variable in der .pro-Datei des Projekts hinzu:
QT += httpserver
Lizenzen
Qt HTTP Server ist unter kommerziellen Lizenzen von The Qt Company erhältlich. Darüber hinaus ist es unter der GNU General Public License, Version 3, verfügbar. Siehe Qt Licensing für weitere Details.
Referenz
Beispiele
Das Modul bietet die folgenden Beispiele als Leitfaden für die Verwendung der API.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.