HTTP权威指南阅读笔记五:Web服务器
Web服务器会做些什么:
1、建产连接:接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。
1)处理新连接
2)客户端主机名识别
3)通过ident确定客户端用户
ident在组织内部可以很好地工作,主要是因为以下原因导致在公共因特网上并不能很好地工作:
1、很多客户端PC没有运行ident识别协议守护进程软件
2、ident协议会使HTTP事务处理产生严重的时延
3、很多防火墙不允许ident流量进入
4、ident协议不安全,容易被伪伪
5、ident协议也不支持虚拟IP地址
6、暴露客户端的用户名还涉及隐私问题
2、接收请求:从网络中读取一条HTTP请求报文
3、处理请求:对网络报文进行解释,并采取行动
4、访问资源:访问报文中指定的资源
1)docroot:web服务器需对文档根目录进行解析
2)目录列表:web服务器可以接收对目录URL的请求,其路径可以解析为一个目录,而不是文件。
3)动态内容资源的映射:在IIS中配置PHP支持就是用到了这一点
4)服务端包含项:很多web服务器还提供了对服务器端包含项(SSI)的支持。如果某个资源被标识为存在服务器端包含项,服务器就会在将其发送给客户端之前对资源内容进行处理,类型ASP。
5)访问控制:Web服务器还可以为特定资源进行访问控制。有请求到达,要访问受控的资源时,Web服务器可以根据客户端的IP进行访问控制,也可以要求输入密码来访问资源。
5、构建响应:创建带有正确首部的HTTP响应报文
1)响应实体
2)MIME类型:根据文件扩展名、魔法分类(文件内容)、显式分类(强制特定文件或目录内容拥有某个MIME类型)、类型协商(由用户定义)
3)重定向:永久搬离资源(301)、临时搬离资源(302)、URL增强(303/307)、负载均衡(303/307)、服务器关联(303/307)、规范目录名称(给URL加斜线)
6、发送响应:将响应回送给客户端
7、记录事务处理过程:将与已完成事务有关的内容记录在一个日志文件中

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2010-11-01 四种方法把string[]转换为int[]