一台服务器可以搭建多个独立域名的web网站,也可以作为通信路径上的中转 服务器的提升传输效率
虚拟主机
HTTP/1.1规范允许一台HTTP服务器搭建多个web站点。比如,提供web托管服务的供应商,可以用一台服务器为多个客户服务,也可以以每位客户持有的域名运行各自不同的网站。这里使用了虚拟主机的功能。
即使物理层只有一台服务器,但只要使用虚拟主机的功能,则可以假想自己具有多台的服务器。
在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域名的web网站,因此在发送HTTP请求的时候,必须在Host首部内完整指定主机名或域名的URI。
通信转发程序——代理、网关和隧道
三者的概念
- 代理。是一种具有转发能力的应用程序,它扮演了位于服务器和客户端的“中间人”角色,接受客户端的请求然后转发给服务端,也接受服务端的响应转发给客户端
- 网关就是转发其他服务器通信数据的服务器,接到客户端的请求的时候,它就像自己拥有资源一样的源服务器一样对请求进行处理。
- 隧道。隧道就是在相隔甚远的的服务端和客户端之间进行中转,并保持双方通信连接的应用程序。
代理有什么用?
- 利用缓存技术减少网络带宽的流量
- 组织内部对特定网络的访问控制(比如一些公司限定了不能访问一些网站)
- 以获取访问日志为目的(可以记录中间的一些信息,通过via首部字段等)
怎么做到代理?
- 缓存代理。转发响应的时候,缓存代理会预先将资源的副本保存在代理服务器上。当再次请求服务器的时候,可以直接从代理服务器中获取资源
- 透明代理。转发请求或者响应的时候,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy)
为什么要用到网关
- 网关能够使通信线路上的服务器提供非HTTP协议服务。
- 利用网关可以提高通信的安全性,因为可以在客户端和网关之间的通信线路上加密以确保连接的安全。
为什么要使用隧道
- 确保客户端能够与服务端进行安全的通信。隧道本省不会去解析HTTP请求,也就是说,请求保持原样中转给之后的服务器。
保存资源的缓存
缓存的概念
缓存是指代理服务器或者客户端本地磁盘内保存的资源副本。利用缓存技术可以减少对源服务器的访问,因此也就节省了通信流量和通信时间。
客户端的缓存
缓存不仅仅可以存在于缓存服务器中,我们还可以存在于客户端浏览器中,以IE为例,把客户端缓存称为临时网络文件。
浏览器缓存如果有效,就不必要再向服务端发送请求相同的资源了,可以从本地磁盘中读取