Web服务器工作流程
- 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭
- 接收请求——从网络中读取一条HTTP请求报文
- 处理请求——对请求报文进行解释,并采取行动
- 访问资源——访问报文中指定的资源
- 构建响应——创建带有正确首部的HTTP响应报文
- 发送响应——将响应回送给客户端
- 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中
1.建立连接
Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。
2.接收请求
Web服务器集中几种请求服务的方式:
- 单线程Web服务器
- 多进程及多线程Web服务器
- 复用I/O的服务器
- 复用的多线程Web服务器
5.构建响应
重定向:
Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URL。重定向适用的情况。
- 永久搬离的资源(301)
- 临时搬离的资源(303和307)
- URL增强
- 负载均衡
- 服务器关联
- 规范目录名称
服务器关联
Web服务器上可能会有某些用户的本地信息;服务器可以将客户端重定向到包含了那个客户端信息的服务器上去。(303和307)
规范目录名称
客户端请求的URI是一个不带尾部斜线的目录名时,大多数Web服务器都会将客户端重定向到一个加了斜线的URI上,这样相对连接就可以正常工作了。(303和307)
有时会将这些经过扩展和状态增强的URL称为“胖URL”。