Qt HTTP Server
Qt HTTP Server 支持在应用程序中构建 HTTP 服务器功能。常见的用例包括通过 REST API 公开应用程序的功能,或让可信环境中的设备也能通过 HTTP 进行配置。限制与安全》中对限制进行了说明。
概述
Qt HTTP Server 基于RFC 2616的 HTTP 服务器为在应用程序中嵌入轻量级 HTTP 服务器提供了构建模块。发送和接收的信息以及 HTTP 服务器的各个部分都有相应的类。
HTTP 服务器可通过子类化QAbstractHttpServer 类和覆盖handleRequest() 函数来创建。QAbstractHttpServer 类提供了与现有QTcpServer 、QSslServer 或QLocalServer 绑定的函数。通过使用QHttpServerRouter 类,可以简化基于传入 URL 的可调用调度。
使用QHttpServer 类可以进一步简化这一过程。QHttpServer 类是QAbstractHttpServer 的子类,定义了一个重载 route 函数,用于将可调用程序与不同的传入 URL 绑定,还定义了一个addAfterRequestHandler() 函数,用于进一步处理响应。
运行时日志记录可按此处所述进行配置。
限制与安全
Qt HTTP Server HTTP 服务器不具备通用 HTTP 服务器所具备的许多高级功能和优化功能。此外,它在网络上的各种攻击载体方面也没有受到同样的严格审查。因此, 只能用于本地连接或在受信任的网络中使用,不要将端口暴露在互联网上。Qt HTTP Server
不过,作为一项基本的安全措施,您可以添加 HTTPS 支持。如果 Qt XML 在编译时支持 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 通用公共许可证第 3 版的保护。更多详情,请参阅Qt Licensing。
参考资料
示例
该模块提供了以下示例作为 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.