码迷,mamicode.com
首页 > Web开发 > 详细

第5章 Web服务器

时间:2014-09-25 03:24:49      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:python

1、Web服务器有不同的形式:可以在计算机系统上安装并运行通用的软件Web服务器;一台Web服务器设备;或是在少量计算机芯片上实现嵌入式Web服务器。


2、第一步——接收客户端连接

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


3、第二步——接收请求报文

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

单线程的Web服务器以此只处理一个请求,直到其完成为止。可以采用多线程的Web服务器或是复用I/O的服务器。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时,就对那条连接进行少量的处理;处理结束后,将连接返回到开放连接列表中,等待下一次状态变化。可以将多线程和复用I/O结合起来。


4、第三步——处理请求

一旦Web服务器收到了请求,就可以根据方法、资源、首部和可选的主体部分来对请求进行处理。


5、第四步——对资源的映射及访问

Web服务器是资源服务器。它们负责发送预先创建好的内容。通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容,这个文件夹被称为文档的根目录。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。服务器要注意,不能让相对URL退到根目录之外,将文件系统的其余部分暴露出来。。

虚拟托管的Web服务器会在同一台Web服务器上提供多个Web站点,每个站点在服务器上都有自己独有的文档根目录。

根目录的另一种常见应用是在Web服务器上为人们提供私有的Web站点。

Web服务器可以接收对目录URL的请求,其路径可以解析为一个目录,而不是文件。大多数Web服务器都会去查找目录中一个名为index.html的文件来代表此目录。如果用户请求目录URI时,没有提供默认的索引文件,而且没有禁止使用目录索引,很多Web服务器都会自动返回一个HTML文件,此文件中会列出那个目录里的文件名,以及每个文件的大小和修改日期,还包括到每个文件的URI连接。

Apache允许用户将URI路径名组件映射为可执行文件目录。服务器收到一条带有可执行路径组件的对URI的请求时,会试着去执行相应服务器目录中的程序。


6、第五步——构建响应

6.1、MIME类型

Web服务器要负责确定响应主体的MIME类型,有很多方法可以将MIME类型与资源关联起来。

Web服务器可用文件的扩展名来说明MIME类型;Apache Web服务器可以扫描每个资源的内容,并将其与一个已知模式表进行匹配,以决定每个文件的MIME类型;可以对Web服务器进行配置,使其不考虑文件的扩展名和内容,强制特定文件或目录内容拥有某个MIME类型;有些Web服务器经过配置,可以以多种文档格式来存储资源,这时可以使其通过与用户的协商来决定使用哪种最好。


7、第六步——发送响应

服务器要记录连接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后,关闭自己这一端的连接。


8、第七步——记录日志

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

本文出自 “莲的思念” 博客,请务必保留此出处http://liandesinian.blog.51cto.com/7737219/1557913

第5章 Web服务器

标签:python

原文地址:http://liandesinian.blog.51cto.com/7737219/1557913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!