1. 虚拟主机实现多域名
HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点,因此,即使物理层面上只有一台服务器,只要使用虚拟主机的功能,则可以假想已具有多台服务器
问:单主机多域名的话,客户端访问不同域名时,DNS返回的都是该物理服务器主机IP,此时服务器怎样判断访问哪个域名/资源?
答:没错,由于虚拟主机可以寄存多个不同主机名和域名的Web网站,因此在发送HTTP请求时,必须要在Host首部完整地指定主机名或者域名的URI。
2. 通信数据转发程序
在进行HTTP通信时,除了客户端和服务器以外,还有一些专门用于数据转发的应用程序,例如代理、网关和隧道,它们可以配合服务器工作。
- 代理Proxy:
'中间人'角色,转发客户端的请求给源服务器,转发源服务器的响应给客户端
每次通过代理服务器转发请求/响应时,都会追加写入Via首部信息
问:为什么要用代理服务器?
答:利用缓存技术减少网络带宽流量;组织内部针对特定网站的访问控制;获取访问日志;
缓存代理(Caching Proxy):代理转发响应时,预先将资源副本缓存在代理服务器上
透明代理(Transparent Proxy):转发请求/响应时,不对报文做任何加工的代理成为透明代理。相反 非透明代理
- 网关Gateway:
与代理功能类似,但网关能使通信线路上的服务器提供非HTTP协议服务
可以使用网关提高通信的安全性,通过在客户端与网管之间通信线路上加密的方式
- 隧道Tunnel:
隧道可以按要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信
隧道的目的是:确保客户端能与服务器进行安全的通信
3. 资源的缓存
缓存服务器 + 客户端缓存(缓存在浏览器)