HTTP 结构
web 服务器结构
介绍
- Web 服务器会对 HTTP 请求进行处理并提供响应。
- 通用软件Web服务器 ,比如 Apache 或 W3C 的 Jigsaw
- Web服务器设备
- 嵌入式Web服务器,比如打印机或家用设备
服务器的工作步骤
- (1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就 将其关闭。
- (2) 接收请求——从网络中读取一条 HTTP 请求报文。
- (3) 处理请求——对请求报文进行解释,并采取行动。
- (4) 访问资源——访问报文中指定的资源。
- (5) 构建响应——创建带有正确首部的 HTTP 响应报文。
- (6) 发送响应——将响应回送给客户端。
- (7) 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。
HTTP 代理服务器(proxy)
私有代理
- 单个客户端专用的代理
- 不常见
- 用于浏览器的辅助产品或IPS服务
公共代理
- 众多客户端共享的代理。
- 大多数
- 效率高,容易管理
为什么使用代理
- 改善安全性
- 提高性能
- 节省费用
- 监视流量并修改,实现增值服务
应用
- 儿童过滤器
- 文档访问控制
- 安全防火墙
- Web 缓存
- 反向代理
- 假扮 Web 服务器,接收请求并响应。
又被成为服务器加速器
- 内容路由器
- 根据因特网流量状况以及内容类型将 请求导向特定的 Web 服务器。
- 转码器
- 发给客户端之前转换内容格式
- 匿名者代理
- 主动从 HTTP 报文中删除身份特性,
提高私密性匿名性
代理服务器的部署
- 出口代理
- 固定在本地网络的出口点
- 入口代理
- 放在 ISP 访问点上
- 反向代理
- 部署在网络边缘,Web服务器之前
- 网络交换代理
- 放在因特网的对等交换点上,通过缓存减轻拥塞并对流量进行监控
代理URI与服务器URI的不同
- 代理URI包含完整的URI
- 服务器URI不包含协议主机端口号,即为相对路径
追踪报文
- Via 首部
- 记录报文经过的代理的相关信息
- Trace
- 跟踪经代理链传输的请求报文,可用于代理流调试
- Max-Forwards
- TRACE 和 OPTIONS经过的最大代理数
Web 缓存机制
优点
- 减少冗余的数据传输,节省网络费用
- 缓解网络瓶颈问题,节省带宽
- 降低对原始服务器的要求,提高服务器性能
- 降低了距离时延
缓存机制
- 缓存命中
- 可以用已有的副本为某些到达缓存的请求提供服务
- 缓存未命中
- 到达缓存的请求却由于没有副本可用,而被转发给原始服务器
- 新鲜度检测
- 被称为在验证,是为保证缓存的内容时时都是服务器上最新的
- 通过向服务器发送再验证请求
缓存的处理步骤
- 接收——缓存从网络中读取抵达的请求报文。
- 解析——缓存对报文进行解析,提取出 URL 和各种首部。
- 查询——缓存查看是否有本地副本可用,如果没有,就获取一份副本(并将其保存在本地)。
- 新鲜度检测——缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新。
- 创建响应——缓存会用新的首部和已缓存的主体来构建一条响应报文。
- 发送——缓存通过网络将响应发回给客户端。
- 日志——缓存可选地创建一个日志文件条目来描述这个事务。
保持副本的新鲜
- 文档过期
- 原始服务器向
每个文档附加了一个“过期日期”
- 服务器再验证
- If-Modified-Since:Date再验证(IMS请求)
- If-None-Match:实体标签再验证
Web 机器人
爬虫
- 递归遍历Web站点,获取该页面指向的所有页面。
代理位于客户端和服务器之间,扮演 “中间人”的角色,在各端点之间来回传送 HTTP 报文