PySide6.QtHttpServer¶
- PySide6.QtHttpServer.QAbstractHttpServer
- PySide6.QtHttpServer.QFutureHttpServerResponse
- PySide6.QtHttpServer.QHttpServer
- PySide6.QtHttpServer.QHttpServerRequest
- PySide6.QtHttpServer.QHttpServerResponder
- PySide6.QtHttpServer.QHttpServerResponse
- PySide6.QtHttpServer.QHttpServerRouter
- PySide6.QtHttpServer.QHttpServerRouterRule
- PySide6.QtHttpServer.QHttpServerWebSocketUpgradeResponse
详细描述¶
提供一个实现HTTP协议的轻量级服务器。
Qt HTTP 服务器支持将 HTTP 服务器功能构建到应用程序中。常见的用例是通过 REST API 暴露应用程序的功能,或者使受信任环境中的设备也可以通过 HTTP 进行配置。限制在限制与安全中有描述。
概述¶
Qt HTTP 服务器提供了在应用程序中嵌入基于RFC 2616的轻量级HTTP服务器的构建模块。它包括用于发送和接收消息的类,以及用于HTTP服务器各个部分的类。
可以通过子类化QAbstractHttpServer
类并重写handleRequest()
函数来创建一个HTTP服务器。QAbstractHttpServer
类提供了绑定到现有QTcpServer、QSslServer或QLocalServer的函数。通过使用QHttpServerRouter
类,可以简化基于传入URL的可调用对象的分发。
这可以通过使用QHttpServer
类进一步简化。QHttpServer
类是QAbstractHttpServer
的子类,并定义了一个重载的路由函数,用于将可调用对象绑定到不同的传入URL,以及一个addAfterRequestHandler()
函数,用于进一步处理响应。
运行时日志记录可以按照这里的描述进行配置。
限制与安全¶
Qt HTTP 服务器不具备通用 HTTP 服务器的许多高级功能和优化。它也没有经过针对各种网络攻击向量的相同严格审查。因此,仅在本地连接或受信任的网络中使用 Qt HTTP 服务器,并且不要将端口暴露给互联网。
您可以添加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进行构建,请将模块作为QT变量的值添加到项目的.pro文件中:
QT += httpserver
许可证¶
Qt HTTP Server 可从 The Qt Company 获得商业许可。此外,它还可在 GNU 通用公共许可证第 3 版下使用。有关更多详细信息,请参阅 Qt 许可。
参考¶
Qt HTTP 服务器日志记录
示例¶
该模块提供了以下示例作为使用API的指南。