网站怎么做支付系统,中装建设股票行情,瑞安机械网站建设,网站建设方案应急处置引言#xff1a;所谓http协议#xff0c;本质上也是基于TCP/IP上服务器与客户端请求和应答的标准#xff0c;web开发中常用的http server有apache和nginx。Qt程序作为http client可以使用QNetworkAccessManager很方便的进行http相关的操作。Qt本身并没有http server相关的库…引言所谓http协议本质上也是基于TCP/IP上服务器与客户端请求和应答的标准web开发中常用的http server有apache和nginx。Qt程序作为http client可以使用QNetworkAccessManager很方便的进行http相关的操作。Qt本身并没有http server相关的库也许是因为很少有这种需求吧毕竟把一台嵌入式设备做http服务器也是挺奇怪。但是实际开发中也会有做简单的http server的需求。
大概有以下几个基于QT/C的http服务器的库。
一、qthttpserver
前面说到Qt官方在发行版中并没有提供相应的类来实现HTTP 服务端但是Qt-lab中提供了一个qthttpserver Github地址在这里不知道基于什么原因Qt官方没有将其纳入正式的Qt发行版中如果要使用qthttpserver的话就得自己下载源码进行编译了不过编译可没那么容易会遇到各种错误而且还没有提供说明文档这就不太友好了。 关于编译或简单使用参考以下文章
Qt开发的轻量级http服务器-QtHttpServer编译 关于Qt HttpServer的一些测试Qt6.4.0rc QtHttpServer编译使用亲测可用 QT基于qhttp-server搭建http服务器
可以直接把源码模块直接引入到工程里面使用源码里面就3个模块{httpserver、logging、templateengine}按需引入即可httpserver模块是最核心的肯定是要引入的。。。 也可以将源码编译成库然后再通过头文件库的形式去倒腾 具体使用哪一种看你自己喽。
二、cpp-httplib
这是Github上一个开源的C实现http server的项目使用方法非常简单就只有一个头文件引入到自己的项目中就可以使用了不过这是一个多线程“阻塞”HTTP 库如果您正在寻找“非阻塞”库那就要换别的了。具体使用可以参考Github里面的文档介绍很详细。
三、 QtWebApp
QtWepApp 是 C 中的 HTTP 服务器库适用于 Linux、Windows、Mac OS 和Qt 框架支持的许多其他操作系统。 这个库使用也非常简单而且可以支持Qt框架所以比较适合在Qt项目中使用。 这个库它也是用QT写的但并不是QT官方写的不过它的名气比Qt官方qthhttpserver库要大。 有趣的是Qt制造商多年来一直在开发标准HTTP服务器但到2022年它仍然不包括在Qt库中。这也许可以解释为什么很多人使用的库。
本次选择更为实用的QtWebApp来作为http服务器。
源码下载https://github.com/fffaraz/QtWebApp Project homepagehttp://stefanfrings.de/qtwebapp/index-en.html Tutorialhttp://stefanfrings.de/qtwebapp/tutorial/index.html API dochttp://stefanfrings.de/qtwebapp/api/index.html
关于QtWebApp的使用可以直接阅读源码提供的demo1结合日志可以很快的理解。 更好的是直接参考QtWebApp的使用网站Tutorial真的是非常详细不过是英文版的需要具备一定的英语阅读能力。网站如下图所示。
四、双向认证
之前使用nginx作为https服务器与客户端进行了双向认证和单向认证。 参考以下文章本篇是在以下两篇文章的基础上继续开发的证书、私钥等的制作及流程验证在以下文章中均作了详细的说明。所以阅读此篇文章前务必首先阅读以下两篇文章。
ssl单向证书和双向证书校验测试及搭建流程 QT充当客户端模拟浏览器等第三方客户端对https进行双向验证
此处采用QtWebApp来手动开发https服务器来完成与客户端之间基于ssl的双向认证。
未完待续。。。。。