图解HTTP(五)—— 与HTTP协作的Web服务器

一、用单台虚拟主机实现多个域名

        HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点,即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想具有多台服务器。在互联网上,域名通过域名解析之后访问目标网站,所以请求发送到服务器时,是以IP地址的形式访问的,如果一台服务器托管了多个域名,当收到请求时就需要弄清楚是哪个域名访问的。因此在发送HTTP请求时,必须在host首部内完整的指定主机名或域名的url。

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

       在HTTP通信时,除了客户端和服务端以外,还有一些用于通信数据转发的应用程序,如代理、网关、隧道,它们可以配合服务器进行工作。这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收从服务发送的响应再转发给客户端。

1、代理

        代理一种有转发功能的应用程序。它的基本行为是接收从客户端发送的请求转发给其他服务器,它不会改变请求的URI。在HTTP通信时,可级联多台代理服务器,请求和转发会经过多台类似锁链一样的代理服务器。转发时,需要附加Aia首部字段以标记出经过的主机信息。

① 使用代理的好处

        利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,获取访问日志等。

② 代理的使用分类

缓存代理:它会预先将资源的副本保存在代理服务器上,当代理再次收到相同资源的请求时,就可以不再从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。

透明代理:它不对报文进行任何形式的加工。反之,对报文内容进行加工的代理称为非透明代理。

2、网关

        网关是转发其他服务器通信数据的服务器。当客户端发来请求时,它可以像源服务器一样对请求进行处理。它的工作机制和代理十分相似,不过它能够给通信线路上的服务器提供非HTTP协议的服务。

        利用网关可以提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全,网关也可以连接数据库,进行SQ的查询等。

3、隧道

        隧道是在相关较远的两个客户端与服务端之间进行中转并保持双方通信连接的应用程序。隧道使用SSL等加密手段进行通信,它的目的是确保客户端可以跟服务器进行比较安全的通信。

        隧道本身不会去解析HTTP请求,请求会保持原样中转给之后的服务器,隧道会在通信双方断开连接时结束。

三、保存资源的缓存

        缓存是指代理服务器或客户端的本地磁盘内保存的资源副本。利用缓存可以减少对源服务器的访问,节省了通信流量和通信时间。缓存服务器是代理服务器的一种。

1、缓存的有效期限

        即使存在缓存,也会因为客户端的要求、缓存的有效期限等因素,向源服务器确认资源的有效性,若判断缓存失效,缓存服务器会再次从源服务器上获取新的资源。

2、客户端的缓存

        缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。发生请求时,如果判断浏览器缓存失效,浏览器会再次请求新的资源。


你可能感兴趣的:(图解HTTP)