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 报文