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

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

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

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

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

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

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

持有资源实体的服务器被称为源服务器。由源服务器返回的响应经过代理服务器传输至客户端。
代理

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

添加Via字段

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

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

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

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

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

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

3. 保存资源的缓存

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值