Qt HTTP 服务器

Qt HTTP 服务器支持在应用程序中构建 HTTP 服务器功能。常见用例是通过 REST API 暴露应用程序的功能,或者通过 HTTP 使受信任环境中的设备可配置。限制见限制 & 安全

概述

Qt HTTP 服务器提供了将基于 RFC 2616 的轻量级 HTTP 服务器嵌入到应用程序中的构建模块。有用于发送和接收消息的类,以及 HTTP 服务器的各个部分的类。

可以通过继承 QAbstractHttpServer 类并覆盖 handleRequest() 函数来创建一个 HTTP 服务器。该 QAbstractHttpServer 类提供了监听传入端口或将绑定到现有的 QTcpServer 的函数。通过使用 QHttpServerRouter 类,可以根据传入的 URL 简化将可调用项分派到那里的操作。

这还可以通过使用 QHttpServer 类进一步简化。该 QHttpServer 类是 QAbstractHttpServer 的子类,并定义了一个重载的路由函数,用于将可调用项绑定到不同的传入 URL,以及一个 afterRequest() 函数,用于处理进一步的响应。

运行时记录配置如这里所述。

限制 & 安全

Qt HTTP 服务器不具有通用 HTTP 服务器拥有的许多更高级的功能和优化。它也没有在各种网络攻击向量方面受到相同的审查。因此,仅用于本地连接或受信任网络中的 Qt HTTP 服务器,不要将端口暴露给互联网。

尽管如此,您可以通过使用 TLS 支持作为基本安全措施。如果 Qt 链接了 TLS 支持,则可以将 QAbstractHttpServer 及其子类绑定到 QSslServer 对象,提供传输层安全性处理。这也可以在调用 listen() 之前通过调用 QAbstractHttpServer::sslSetup() 函数来实现。

使用该模块

使用 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服务器可在Qt公司的商业许可证下使用。此外,它可以在GNU通用公共许可证,版本3下使用。有关更多信息,请参阅Qt许可证

参考

示例

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

© 2024 Qt公司有限公司。本文件中包含的文档贡献的所有权归其各自的拥有者。提供本文件的文档根据GNU自由文档许可证版本1.3的条款进行许可,由自由软件基金会出版。Qt及其相关徽标是芬兰和/或全球其他国家的The Qt Company Ltd的商标。所有其他商标均为其各自拥有者的财产。