![](https://img-blog.csdnimg.cn/085b8bb6118f4509bf3df437c9c382a1.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
webserver
文章平均质量分 94
webserver
呵呵哒( ̄▽ ̄)"
喜欢分享学习笔记,并不一定是正确的,阶段性的学习成果做一下记录,欢迎一起交流讨论,也希望有错误的地方可以向我提出,我会虚心接受并纠正
展开
-
WebServer 解析HTTP 响应报文
1.1 stat作用:获取文件信息// 获取文件属性,存储在statbuf中/* 文件类型和权限 *//* 文件大小,字节数 */返回值:成功返回0,失败返回-1;参数:文件路径(名),structstat 类型的结构体/* ID of device containing file */文件使用的设备号/* inode number */ 索引节点号/* protection */ 文件对应的模式,文件,目录等/* number of hard links */ 文件的硬连接数。原创 2023-09-09 15:08:55 · 963 阅读 · 0 评论 -
WebServer 解析HTTP 请求报文
该状态机包含三种状态:type_A、type_B 和 type_C,其中 type_A 是状态机的开始状态,type_C 是状态机的结束状态。有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑。通过调用从状态机来驱动主状态机,在主状态机进行解析前,从状态机已经将每一行的末尾\r\n符号改为\0\0,以便于主状态机直接取出对应字符串进行处理。为此,需要在完成请求体解析后,将。解析完消息体之后,报文的完整解析也就完成了,此时主状态机的状态还是。原创 2023-09-07 21:24:06 · 739 阅读 · 0 评论 -
模拟Proactor模式实现 I/O 处理单元
遍历数组中的所有事件,根据事件类型进行相应的处理。事件处理器:在初始化线程池时,输入的参数是。监听的文件描述符 listenfd。,用于等待文件描述符上的I/O事件;对象,这个就是用于处理任务的任务类。epoll_wait()函数。挂起的连接或监听套接字已经关闭。epoll_wait()函数。所管理的文件描述符集合中,返回时,它会将事件列表填入。文件描述符epollfd。服务器应用程序可以通过。不断检测有无事件发生。需要监视的文件描述符。原创 2023-09-06 20:42:45 · 309 阅读 · 0 评论 -
webserver 同步 I/O 模拟 Proactor 模式的工作流程
原理是:主线程执行数据读写操作,读写完成之后,主线程向工作线程通知这一”完成事件“。那么从工作线程的角度来看,它们就直接获得了数据读写的结果,接下来要做的只是对读写的结果进行逻辑处理。它分析并处理客户数据,然后将结果传递给 I/O 处理单 元或者直接发送给客户端(具体使用哪种方式取决于事件处理模式)I/O 处理单元接收到客户请求时,需要以某种方式通知一个逻辑单元来处理该请求。服务器通常拥有多个逻辑单元,以实现对多个客户任务的并发处理。是服务器管理客户连接的模块。④ 请求队列是各单元之间的通信方式的抽象。原创 2023-09-06 14:50:00 · 819 阅读 · 0 评论 -
线程同步机制类封装及线程池实现
这将唤醒正在等待任务的子线程,不过只有一个子线程将获得新任务的”接管权“,它可以从工作队列中取出任务并执行之,而其他子线程将继续睡眠在工作队列上。,一般要多于CPU的核数,因为线程间竞争的不是CPU的计算资源而是IO,IO的处理一般较慢,多于cores数的线程将为CPU争取更多的任务,不至在线程处理IO的过程造成CPU空闲导致资源浪费。线程池中的线程数量最直接的限制因素是中央处理器(CPU)的处理器(processors/cores)的数量N :如果你的CPU是4-cores的,原创 2023-09-05 18:12:05 · 139 阅读 · 0 评论 -
阻塞/非阻塞、同步/异步(网络IO)
【思考】典型的一次IO的两个阶段是什么?数据就绪 和 数据读写数据就绪:根据系统IO操作的就绪状态阻塞非阻塞数据读写:根据应用程序和内核的交互方式同步异步陈硕:在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO。一个典型的网络IO接口调用,分为两个阶段,分别是数据就绪和数据读写,数据就绪阶段分为 阻塞和非阻塞,表现得结果就是,阻塞当前线程或是直接返回。表示A向B请求调用一个网络IO接口时(或者调用某个业务逻辑。原创 2023-09-02 14:47:35 · 366 阅读 · 0 评论 -
Web服务器简介及HTTP协议
超文本传输协议(HTTP)是一个简单的请求响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII形式给出;而消息内容则具有一个类似MIME的格式。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆伯纳斯李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web ConsortiumW3C)和互联网工程任务组(IETF。原创 2023-08-31 20:43:59 · 930 阅读 · 0 评论