第五章 Web服务器

来源:互联网 发布:淘宝做的最好的店铺 编辑:程序博客网 时间:2024/06/01 09:26
第二部分 HTTP结构
第五章 Web服务器
1、基本Web服务器请求的步骤

1)第一步——接受客户端连接
如果客户端已经打开一条到服务器的持久连接,可以使用那条连接来发送请求
客户端请求一条到Web服务器的TCP连接,Web服务器会建立连接,从TCP连接解析出客户端IP地址

2)第二步——接受请求报文
连接上有数据到达时,Web服务器从网络连接中读取数据,并将请求报文中的内容解析出来
解析请求报文
①解析请求行,查找请求方法、URI和版本号,空格分隔,以回车换行(CRLF)作为行的结束
②读取以CRLF结尾的报文首部
③检测到以CRLF结尾的、标识首部结束的空行
④如果有的话,读取请求主体
Web服务器输入/输出结构
①单线程Web服务器
一次只处理一个请求
②多进程及多线程Web服务器
可以根据需要创建,或预先创建一些线程或进程。为了防止数量太多消耗内存,一般会有最大数量限制
③复用I/O的服务器
同时监视所有连接上的活动,当连接的状态发生变化,对那条连接进行少量的处理。处理结束后,将连接返回到开放数据列表,等待下一次状态变化
功能:只在有事情可做时才会对连接进行处理;在空闲连接上等待的时候并不会绑定线程和进程
④复用的多线程Web服务器
将多线程和复用功能结合在一起


3)第三步——处理请求
根据方法、资源、首部和可选的主体部分,对请求进行处理

4)第四步——对资源的映射及访问
将请求报文的URI映射为Web服务器上适当的内容或内容生成器,以识别出内容的源头
①文档的根目录(document root):Web服务器的文件系统中的一个特殊文件夹专门用于存放Web内容
Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面
②目录列表:查找一个默认的文件index.html或index.htm
③动态内容资源的映射:服务器端的可执行文件


5)第五步——构建响应
Web服务器识别出资源,执行请求方法中描述动作,并返回响应报文
响应报文:响应状态码、响应首部、响应主体(如果有)
①描述响应主体MIME类型的Content-type首部
②描述响应主体长度的Content-Length首部
③实际报文的主题内容
重定向
①永久删除的资源:资源移到新位置或重命名,重定向到新的URL,更新书签信息
②临时删除的资源:资源临时移到新位置或重命名,重定向到新的URL,不更新书签信息
③URL增强:服务器生成新的URL,重定向到新的URL,重新发起请求
④负载均衡:超载的服务器将请求重定向到负载不太重的服务器
⑤服务器关联:服务器将客户端重定向到包含到包含客户端信息的服务器
⑥规范目录名称:客户请求的URI不带尾部斜线的目录名,会重定向到带斜线的URI

6)第六步——发送响应
服务器记录连接的状态
非持久连接,发送保温后,关闭自己这一端的连接
持久连接,连接保持打开状态。必须正确计算content-length首部,不然客户端不知道响应什么时候结束

7)第七步——记录日志
事务结束时,Web服务器在日志文件中添加一个条目,描述已执行的事务
原创粉丝点击