PySide6.QtHttpServer

详细描述

提供一个实现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 服务器日志记录

  • C++ 类

示例

该模块提供了以下示例作为使用API的指南。

班级列表