作者简介
李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。
一、问题
解释Web服务器是如何处理HTTP事务的
二、Web服务器
Web服务器会对HTTP请求进行处理并提供响应。Web服务器请求的七大步骤:
1)接受客户端连接
2)接收请求报文
3)处理请求
4)资源映射及访问
5)构建响应
6)发送响应
7)记录日志
1、接受客户端连接
1)处理新连接
客户端请求一条到Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来。一旦新连接建立起来并接受,服务器就会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。Web服务器也可以使用其他技术识别。
2)客户端主机名识别
可以用”反向DNS“对大部分Web服务器进行配置,以便将客户端IP地址转换成客户端主机名。Web服务器可以将客户端主机名用于详细的访问控制和日志记录。需要注意的是,主机名查找可能会花费很长的时间,这样会降低Web事务处理的速度。很多大容量的Web服务器会禁止主机名解析,或者只允许对特定内容进行解析。
可以用配置指令Hostnamelookups启用Apache的主机查找功能。如只打开HTML和CGI资源的主机名解析功能。
HostnameLookups off <Files ~ "\.(h