
第五章:与HTTP协作的web服务器
5.1 用单台虚拟主机实现多个'域名'
- 一台web服务器可搭建多个独立域名的web网站(web托管服务),也可作为通信路径上的中转服务器提升传输效率
- 客户端使用域名访问服务器,当请求到达服务器时,经过DNS解析,已经是以IP地址的形式进行访问。在相同的IP地址下,由于虚拟主机可以托管多个不同主机名和域名的web网站,因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI(就是路径不同)
5.2 通信数据转发程序(代理、网关、隧道)
- 作用:将请求转发给通信线路的下一站服务器,并且能接收从下一台服务器的响应并再转发给客户端
- 代理:代理是一种有转发功能的应用程序,起到中间人的角色
- 网关:网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的服务器一样对请求进行处理
- 隧道:隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序
5.2.1 代理


- 代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器
- 代理不会改变请求的URI,会直接发送给持有资源的目标服务器
- 使用代理的优点:利用缓存技术减少网络带宽的流量;组织内部针对特定网站的访问控制;以获取访问日志为主要目的等
- 代理分两类:
- 缓存代理:代理转发响应时,缓存代理会预先将资源的缓存保存到代理服务器上,当代理再次接收到对相同资源的请求时,不走源服务器获取资源,而直接将缓存资源作为响应返回
- 透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理,反之,对报文内容进行加工的代理被称为非透明代理
5.2.2 网关
- 网关的工作机制和代理十分相似,而网关能使通信线路上的服务器提供非HTTP协议服务
- 网关能提高通信的安全性,在客户端与网关之间的通信线路上加密以确保连接的安全性
5.2.3 隧道
- 隧道可按照要求建立一条与其他服务器的通信线路,可使用SSL加密手段进行通信
- 目的是确保客户端能与服务器安全通信
- 隧道本身不会去解析HTTP请求
5.3 保存资源的缓存

**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。