http web服务器

来源:jliang981 发布时间:2018-12-08 14:54:23 阅读量:846

web服务器实现

web服务器实现了http和相关的tcp连接处理,负责管理web服务器提供的资源,

以及对web服务器的配置、控制、及扩展方面的管理。

1

2

通用的软件web服务器 有很多种,大多来自三个公司,apache,微软和sun的iplant。

web服务器设备 就是预先包装好的软硬件解决方案,厂商在他们选择的计算机平台上预先安装好软件服务器,并将软件配置好。

嵌入式web服务器 可以嵌入到电子消费品中去。

实际的web服务器会做什么

建立连接 如果不希望与这个客户端建立连接,就关闭

接受请求

处理请求

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

构建响应 创建具有正确响应首部的http报文。

发送响应

记录事务处理过程

接受客户端连接

客户端请求一条到服务器的tcp连接时,web服务器会建立连接,并将接连添加到现存的web服务器连接列表中去,做好监视连接上的数据。web服务器可以随意的拒绝或者关闭任意一条连接。


客户端主机名识别:web服务器将客户端主机名用于**详细的访问控制和日志记录**。但是请求过来的时候,只有客户端ip,可以通过方向dns来查找主机名,但是可能会很慢。通过ident协议来确定客户端用户。如果客户端支持ident协议,就在tcp端口113上坚挺ident请求。这种方式在因特网上,并不常用。

1

2

3

接受请求报文

解析请求行,获取请求方法,和资源标识符。获取首部。如果有的话,还需要读取请求主体。

1

报文内部表示法 有些web服务器使用内部数据结构来存储请求报文。将首部放到一个快速查询表中。

连接输入输出的处理结构 因为有的请求,会在任意时刻到达,web服务器会不停的观察有无新的web请求。不同的web服务器结构会以不同的方式为请求服务:单线程web服务器,多进程及多线程web服务器,复用的io服务器(异步io),复用的多线程web服务器。

对资源的映射和访问

负责发送预先创建好的内容,或者服务器上程序动态生成内容。

1

docroot 最简单的资源映射,就是使用uri作为名字访问web服务器文件系统中的文件。web服务器会有一个特殊的文件夹专门存放web内容。称为文档根目录。把请求中的uri放在根目录后面找到对应的资源。

虚拟托管的docroot 就是一台服务器上提供多个web站点,每个站点在服务器上有自己的独有文档根目录。虚拟托管web服务器根据uri或者host首部的主机名或者ip识别正确的文档根目录。

用户的主目录docroot web服务器上为人们提供私有的站点,通常把那些一斜杠和波浪线开始/~。私有的docroot通常都是用户主目录下那个名为public_html的目录。

目录列表 如果客户端请求的是一个目录,而不是一个资源,那么会有以下几种方式处理:返回一个错误;不返回目录,返回一个特殊的默认的索引文件;扫描目录,返回一个包含目录内容的html页面。大多数服务器会去目录下查找index.html文件来代替此目录。这都是可以配置的。

动态内容资源映射 web服务器还可以将uri映射为动态资源。映射到按需动态生成内容的程序上去。web服务器要能分辨出资源什么时候是动态的,动态内容生成程序位于何处。apache允许用户把uri映射为可执行文件目录。

访问控制 对特定的资源,进行访问控制

构建响应

响应实体 mime类型,content-length(不一定需要,如果服务器响应了这次请求之后,就把连接关了就不需要这个,整个流,都属于这个主题),主体的实际内容。

mime类型 web服务器可以使用文件扩展名来说明mime类型。web服务器会为每个资源扫描一个包含了所有扩展名的mime类型文件。 -魔法分类 扫描内容,确定mime。 -显式分类 根据目录 -类型协商

重定向 适用于以下几种情况:永久删除的资源(301),临时删除的资源(303),url增强(303,307),负责均衡,服务器关联,规范目录名。

发送响应

要注意此次响应发送完之后,是否要关闭连接。

--------------------- 


标签: 服务器搭建
分享:
评论:
你还没有登录,请先