MySQL-CGI-响应报文

embedded/2024/9/19 5:36:36/ 标签: mysql, 数据库

账号密码涉及到:
数据库已记录下来的进行校验。
如果也是来一个新建一个连接,必然效率低。
可以做一个数据库连接池,预生成数据库连接。

如何生成数据库连接?下面的流程做很多次。
然后放在链表中,(池))维护三个变量 最大连接数 可用连接数 当前已用连接数 (要上锁)

1.使用mysql_init()初始化
2.使用real_connect()建立连接
3.使用query()查询
4.使用store_result(mysql)获取结果集
5.使用num_fields(result)获取查询的列 同理行
6.使用fetch_row不断获取下一行,循环输出
7.free可以释放
8.close可以关闭

CGI校验(通用网关接口):

输密码–POST–query()–同步线程校验

而CGI是一个服务器上的程序(.cgi)

项目中有个sign.cpp就是CGI程序

把用户名和密码保存在txt文件中—>
数据库的用户名和密码存在map中用于校验–>
主程序有命令语句来执行CGI校验,不直接返回响应

HTTP响应报文

若目标文件存在、对所有用户可读且不是目录时,则使用mmap将其映射到内存地址m_file_address处,并告诉调用者获取文件成功FILE_REQUEST。

接下来要做的就是根据读取结果对用户做出响应了,也就是到了process_write(read_ret);这一步,该函数根据process_read()的返回结果来判断应该返回给用户什么响应,假设用户请求的文件存在,而且已经被mmap到m_file_address这里了,那么我们就将做如下写操作,将响应写到这个connfd的写缓存m_write_buf中去:

首先将状态行写入写缓存,响应头也是要写进connfd的写缓存(HTTP类自己定义的,与socket无关)中的,对于请求的文件,我们已经直接将其映射到m_file_address里面,然后将该connfd文件描述符上修改为EPOLLOUT(可写)事件,然后epoll_Wait监测到这一事件后,使用writev来将响应信息和请求文件聚集写到TCP Socket本身定义的发送缓冲区中,交由内核发送给用户。


http://www.ppmy.cn/embedded/105164.html

相关文章

macos MacPort 包管理工具安装和使用

在macos v10.15版本中, xz, python等软件无法使用brew安装, 原因是brew对于旧版本的macos不再支持, 但是我们可以使用另外一个macos下的包管理工具来安装brew无法安装的软件, macport 是一个和brew类似的macos下的一个非常优秀的软件包安装管理工具. MacPort安装前提条件 安…

科研绘图系列:R语言基因PPI互作网络图(PPI network plot )

介绍 基因的PPT互作网络图。 加载R包 导入所需要的R包,在导入前需要用户自己安装。 library("tidyverse") library("magrittr") library("here") library("janitor") library("ggpubr") library("ComplexHeatmap&…

【STM32】位带操作

一、位带操作 1.意义 回想以前写51代码 ​ P0 0x10; //将P0端口设置为0x10 P1_01; //将P1端口0号引脚设置为高电平 a P2_2; //获取P2端口2号引脚的电平 根据上述的方法,我们可以发现快速定位修改某个引脚的电平还有获取引脚的状态 2.原因 GPIO_SetBits、GPI…

Ubuntu 22.04 镜像自定义制作

Centos封装镜像> Linux Centos ISO镜像自定义制作 Ubuntu20.04封装镜像> Ubuntu 20.04 镜像自定义制作 1、下载镜像 系统环境:ubuntu 22.04 镜像地址:https://mirrors.aliyun.com/ubuntu-releases rootubuntu:~# apt install -y p7zip xorriso ro…

Python进阶08-爬虫

零、文章目录 Python进阶08-爬虫 1、爬虫介绍 (1)爬虫是什么 **网络爬虫:**又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取网络信息的程序或者脚本,另外一些不常使用的名字还有蚂蚁、自…

应用层(Web与HTTP)

目录 常见术语 1.HTTP概况 2.HTTP连接 非持久HTTP流程 响应时间模型 持久HTTP 3.HTTP报文 3.1HTTP请求报文 3.2HTTP响应报文 HTTP响应状态码 4.Cookies(用户-服务器状态) cookies:维护状态 Cookies的作用 5.Web缓冲(…

视频智能分析打手机检测算法安防监控打手机检测算法应用场景、算法源码、算法模型介绍

随着智能手机的普及,手机已成为人们生活中不可或缺的一部分。然而,在某些场合,如驾驶、会议、学校课堂等,不当使用手机可能会导致安全隐患或干扰他人。因此,开发出一种能够准确识别并阻止不当使用手机的行为检测算法显…

TPM管理咨询公司一走,企业又恢复原样,为什么?

在探讨“TPM管理咨询公司离开后,企业为何常常恢复原样”这一深刻问题时,我们不得不深入剖析TPM理念的本质、实施过程中的挑战以及企业在持续变革中面临的普遍困境。TPM作为一种以最大化设备综合效率为目标的生产维护体系,其核心理念在于通过全…

C++ 消息分发类:详细示例应用

消息分发的概念 消息分发(Message Dispatching)是一种设计模式,广泛用于处理异步事件和消息。在 C 中,消息分发类通常用来接收和分发来自多个源的消息(如网络连接、传感器数据、用户输入等),并根…

如何使用 Canvas 和 Paint 进行绘制,以及如何处理自定义属性和解析 XML 属性

在 Android 中,自定义 View 的绘制通常涉及使用 Canvas 和 Paint 两个关键类。Canvas 提供了一个用于绘制图形的界面,而 Paint 则用来定义绘制的风格和颜色。以下是如何使用 Canvas 和 Paint 进行绘制的步骤,以及如何处理自定义属性和解析 XM…

Flink 1.14.* Flink窗口创建和窗口计算源码

解析Flink如何创建的窗口,和以聚合函数为例,窗口如何计算聚合函数 一、构建不同窗口的build类1、全局窗口2、创建按键分流后的窗口 二、在使用窗口处理数据流时,不同窗口创建的都是窗口算子WindowOperator1、聚合函数实现2、创建全局窗口(入参…

APP长文本内容编辑器功能实现方案

背景 CSDN APP 中原有编辑器页面为纯H5适配,整体用户交互体验差,如何优化APP端编辑器用户体验是我们团队需要思考的问题。下面我们以iOS为例展开讨论。 一、方案调研 我们分析了几款国内内容发布的APP,如知乎、今日头条、简书,…

深度学习100问46:什么是Dropout

嘿,你知道吗?在深度学习的奇妙世界里,有个超厉害的家伙叫 Dropout。 想象一下,你正在建造一个超级复杂的神经网络,就像搭建一座巨大的城堡。但有时候这座城堡可能会变得太娇气,只认得它见过的特定东西&am…

【CF补题数学裴蜀定理】 div969 C Dora and C++

Dora and C 分析: 对于两个数x,y 我们想要通过如下操作使得他们的差变得尽可能小 我们要如何操作? 这个操作也就是相当于 d e l ∣ y − x ∣ − k 1 ∗ x − k 2 ∗ y del|y-x|-k_1*x-k_2*y del∣y−x∣−k1​∗x−k2​∗y,让这个差值最小…

【TomCat】安装部署

首先得进行Java的安装和部署java1.8对应tomcat9 TomCat下载Apache Tomcat - Apache Tomcat 10 Software Downloads

yolo-world开放词汇检测onnxruntime和tensorrt推理

onnxruntime推理 导出onnx模型: from ultralytics import YOLOWorld,YOLO model YOLOWorld(yolov8s-worldv2.pt) model.set_classes(["glasses","shoes"]) model.save("yolo_world.pt") model YOLO(yolo_world.pt) model.export(…

记录 PyQt6 / PySide 6 自定义边框窗口的 Bug 及可能可行的解决方案:窗口抖动和添加 DWM 环绕阴影的大致原理

前言: 本篇文章将要讨论我在前不久发表的关于 PyQt6 / PySide6 自定义边框窗口代码及内容中的问题: (终)PyQt6 / PySide 6 Pywin32 自定义标题栏窗口 完全还原 Windows 原生窗口边框特效_pyside6 win32 无边框窗口-CSDN博客ht…

AOP和注解的配合使用(封装通用日志处理类)

自定义注解 Inherited Documented Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface MyLog {String value() default ""; } 定义切面 Aspect Component Slf4j public class LogAop {// 定义识别自定义注解的切点Pointcut("a…

Spring优缺点和SpringBoot基础和搭建

前言 Spring框架是一个流行的Java企业级开发框架,旨在简化应用程序开发。它的核心特性包括依赖注入和面向切面编程,提供了灵活性和强大的社区支持。然而,Spring也存在学习曲线陡峭和配置复杂等缺点。 Spring Boot是基于Spring的项目&#x…

Linxu系统之Mysql数据库练习【完整版】

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…