第5章 与HTTP协作的Web服务器、缓存代理服务器、客户端缓存

HTTP/1.1 规范允许一个 HTTP 服务器搭建多个站点。

1. 用单台虚拟主机实现多域名

HTTP/1.1 允许一个 HTTP 服务器搭建多个站点,势必会有一个 IP 对应多个域名的情况,那么 DNS 解析出IP之后HTTP怎么来区分访问的是哪个站点呢?

发送HTTP请求报文时,必须在头部 Host 字段内完整的指定主机名或者域名的 URI

2.通信数据转发程序:代理、网关、隧道

1) 代理
代理服务器的基本行为就是接收客户端请求转发给其他服务器。代理不会改变请求的 URI ,会将请求直接发送给持有资源的服务器。

持有资源实体的服务器被称为源服务器。由源服务器返回的响应经过代理服务器传输至客户端。
第5章 与HTTP协作的Web服务器、缓存代理服务器、客户端缓存_第1张图片

在HTTP请求过程中可以级联多台代理服务器,请求和响应的转发会经过数台串联起来的代理服务器,转发时附加Via头部字段以标记经过的代理服务器。

第5章 与HTTP协作的Web服务器、缓存代理服务器、客户端缓存_第2张图片

为什么要使用代理服务器?

  • 缓存
  • 限制访问某些URI
  • 获取访问日志
  • 等等

代理的多种使用方法,按照基准分类,是否进行缓存?是否对报文进行修改?

  • 缓存代理
    代理转发响应时,缓存代理(Caching proxy)会对响应报文进行复制保存,当客户端再次发送相同的请求时,代理服务器返回保存的响应报文不再转发给资源服务器。
  • 透明代理
    代理服务器不对报文进行任何修改称为透明代理,反之称为非通明代理。

2)网关
网关的工作机制跟代理服务器很像,网关可以提供非 HTTP 服务,也就是可以在网关对接结算系统等等。(网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。)

3)隧道
隧道可以按照要求与其他服务器建立一条通信线路,使用SSL等加密手段进行通信,隧道的目的是使客户端和服务端进行安全的通信。
隧道并不会解析HTTP请求,保持原样解析给转发的服务器,隧道会在通信双方断开时结束。

3. 保存资源的缓存

缓存是指代理服务器或客户端资盘中保留的资源副本。利用缓存可减少对服务器的访问,缩短响应时间,节省通信流量

  • 缓存的有效期限
    即使存在缓存也会因为客户端的需求、缓存的有效期等像服务器查询缓存的有效性,若缓存失效需要再次向源服务器请求新的资源。

  • 客户端缓存
    缓存不光存在与缓存代理服务器,客户端的浏览器,终端(Android、iOS)的数据库,文件等,都可以存放缓存,和缓存代理服务器相同客户端缓存也有有效期限。

你可能感兴趣的:(图解HTTP,代理)