一台Web服务器可以搭建多个独立域名的Web网站,也可以作为通信路径上的中转服务器提升传输效率。
虚拟主机
Http/1.1规范允许一台Http服务器搭建多个Web站点。
利用虚拟主机的功能,可以使用一台服务器为多个Web站点提供服务,让各个站点以自己的域名运行各自不同的网站。
互联网上,域名通过DNS服务映射到IP地址之后访问目标网站。
相同IP地址下,虚拟主机可以寄存多个不同的主机名和域名的Web网站,因此在发送Http请求时,要在Host首部内完整指定主机名或域名的URI。
代理
代理是一种具有转发功能的应用程序,扮演了服务器和客户端“中间人”的角色。
代理服务器接收客户端发送的请求并转发给目标服务器,同时接收目标服务器的响应转发给客户端。
代理不会改变URI,会直接发送给持有资源的目标服务器(持有资源实体的服务器称为源服务器)。
Http通信过程中,可以级联多台代理服务器。请求和响应的转发会经过数台类似锁链一样连接起来的代理服务器。转发的时候,需要附加Via首部字段来标记经过的主机信息。
使用代理服务器的情况:
- 利用缓存技术减少网络带宽流量;
- 组织内部对特定网站的访问控制;
- 获取访问日志;
代理服务器分类:
- 按是否使用缓存分类:缓存代理;
- 按是否修改报文分类:透明代理,非透明代理;
缓存是指代理服务器或者客户端本地磁盘内保存的资源副本。
利用缓存可以减少对源服务器的访问,也就节省了通信流量和通信时间。
当代理转发从服务器返回的响应时,代理服务器会保存一份资源的副本。
即使存在缓存,也会因为客户端的要求、缓存的有效期限等因素,向源服务器确认资源的有效性。
网关
网关的工作机制类似代理,不过网关可以使通信线路上的服务器提供非HTTP协议的服务。
网关又称为网间连接器(连接不同网络),协议转换器(不同协议),充当转换的角色。
网关用于不同的通信协议、数据结构或语言,或者体系结构完全不同的两种系统之间。
网关的分类:
- 传输:传输网关用于在两个网关之间建立传输连接;利用传输网关,不通网络上的主机之间可以建立起跨网络的、级联的、点对点的传输连接。网关的作用主要体现在两个不同的网段,或者不同的网络路由协议之间的传输(譬如路由器就是传输网关);
- 应用:应用网关在应用层上进行协议转换;
隧道
隧道可以按照要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信。
隧道的目的是确保客户端与服务器进行安全的通信。
隧道本身不解析Http请求,也就是说,请求保持原样中转给之后的服务器。
隧道本身是透明的,客户端不用在意隧道的存在。
隧道会在通信双方断开连接的时候结束。