Webserver(5.2)网页服务器框架

目录

网页服务器

接收、存储,处理来自客户端的HTTP请求,并对其请求做出HTTP响应。

Web服务器底层是基于tcp协议的,因为要保证数据安全。

服务器编程基本框架

模块:

IO处理单元:处理客户连接,读写网络数据

逻辑单元:业务进程或线程

网络存储单元:数据库、文件或缓存

请求队列:各单元之间的通信方式

两种高效的事件处理模式

需要处理三类事件:IO事件、信号及定时事件

reactor模式

同步IO模型实现reactor模式

主线程只监听文件描述符上是否有事件发生,有的话就立即将该事件通知工作线程(逻辑单元),将socket可读可写事件放入请求队列,交给工作线程处理。

proactor模式

异步IO模型实现proactor模式

同步IO模拟Proactor模式

主线程执行数据读写操作,读写完成之后,主线程向工作线程通知这一完成事件。

相关推荐
MayZork12 小时前
Windows 与 Linux 下 vcpkg 的安装部署指南
linux·运维·windows
yyuuuzz12 小时前
记一次 VPS 性能排查:共享 CPU 突发额度导致的限流
运维·服务器·人工智能
冰雪青松12 小时前
Ubuntu 运维命令大全:从入门到精通的实战参考手册
运维·服务器·ubuntu
前端 贾公子12 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
CDN36013 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络
roman_日积跬步-终至千里13 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
白清羽14 小时前
7.3系统安装docker
运维·docker·容器
Dovis(誓平步青云)14 小时前
折叠屏悬停看视频,上半屏和下半屏应该各做什么
android·java·服务器·开发语言·安全·音视频
翼龙云_cloud15 小时前
阿里云国际渠道代理商:如何在ECS上部署Flask应用?
运维·数据库·阿里云·flask·云计算
GGG76615 小时前
Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战
运维·python·云原生·pip