web服务器实现记录日志和http响应,《HTTP权威指南》5-Web服务器

各种形状,风格,尺寸的Web服务器

Web服务器会对HTTP请求进行处理并提供响应。

Web服务器有着不同的风格,形状和尺寸

但是不管功能,外貌,风格有何差异,所有的Web服务器都能够接收请求资源的HTTP请求,将内容回送给客户端

Web服务器的实现

Web服务器需要实现如下:

实现HTTP和相关的TCP连接处理

负责管理Web服务器提供的资源

Web服务器的配置,控制以及扩展方面的管理

Web服务器逻辑和操作系统共同负责管理TCP连接

底层操作系统负责如下:

管理底层计算机系统的硬件细节

提供TCP/IP的网络支持

负责装载Web资源的文件系统

控制当前计算活动的进程管理功能

Web服务器的不同形式

在标准的计算机系统上安装并运行通用的软件Web服务器

Web服务器设备,通常是一台安装在时髦机架上的计算机

少量计算机芯片上实现嵌入式Web服务器

通用软件Web服务器

通用软件Web服务器都运行在标准的,有网络功能的计算机系统上。

实际的Web服务器会做些什么

建立连接:接收一个客户端连接,如果不希望与这个客户端建立连接,就将其关闭

接收请求:从网络中读取一条HTTP请求报文

处理请求: 对请求报文进行解析,并采取行动

访问资源:访问报文中指定的资源

构建响应:创建带有正确首部的HTTP响应报文

发送响应:将响应回送给客户端

记录事务处理过程:将与已完成事务有关的内容记录在一个日志文件中

接收客户端连接

处理新连接

当客户端请求一条道Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来

新连接建立起来后,服务器会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。

服务器客户随意拒绝或立即关闭任意一条连接

客户端主机名识别

可以用“反向DNS”,以便将客户端IP地址转换成客户端主机名。

Web服务器可以将客户端主机名用于详细的访问控制和日志记录

注:主机名查找会花费很长时间,所以很多大容量Web服务器要么会进制主机名解析,要么只允许对特定内容进行解析。

通过ident确定客户端用户

有些Web服务器还支持IETF的ident协议。

服务器通过ident协议找到发起HTTP连接的用户名

6e453cadc34e

使用ident协议来确定HTTP的客户端用户名

ident可以在组织内部很好的工作,但出于很多原因,在公共因特网上并不能很好的工作。

接收请求报文

连接上有数据到达时,Web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来,解析请求报文时,Web服务器会不定期地从网络上接收数据。

Web服务器需要从网络中读取数据,将部分报文数据临时存储在内存中,知道收到足以进行解析的数据并理解其意义为止,解析过程如下:

解析请求行,查找请求方法,指定的URL和版本号

读取以CRLF结尾的报文首部

3.检测到以CRLF结尾的,标识首部结束的空行(如果有)

读取请求主体(如果有)

处理请求

Web服务器接收请求后,就会根据方法,资源,首部和可选的主体部分对请求进行处理。

对资源的映射及访问

Web服务器是资源服务器,负责发送预先创建好的内容,以及运行在服务器上的资源生成程序所产生的动态内容。

Web服务器在将内容传送给客户端之前,需要将请求报文中的URL映射为Web服务器上社党的内容或内容生成器,以识别出内容的源头

构建响应

Web服务器识别出资源后,开始执行请求方法中描述的动作,返回响应报文,响应报文中包含有响应状态码,响应首部,响应主体(如果有)

响应实体

如果响应主体存在,响应报文中通常包括:

描述响应主体MIME类型的Content-Type首部

描述了响应主体长度的Content-Length首部

实际报文的主体内容

重定向

Web服务器有时会返回重定向响应而不是成功的报文。

Web服务器可以将浏览器重定向到其他地方来执行请求。

发送请求

Web服务器通过连接发送数据时,服务器可能有很多条到各个客户端的连接,有些是空闲的,有些在想服务器发送数据,还有一些在客户端回送响应数据。

服务器要记录连接的状态

记录日志

事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值