物理层面只有一台服务器,使用虚拟主机功能,可以假想已具有多台服务器。
代理:扮演了服务器和客户端中间人的角色,他接受客户端的请求,并发送给服务器。然后将服务器的结果返回给客户端。
网关:向其他服务器转发请求的一个服务器。客户端请求网关服务器,然后网关向已经有资源的服务器进行转发。
隧道:当客户端和服务器相隔很远的时候,隧道就在他们之间中转,并保证双方通信连接。
代理服务器的基本行为就是接收客户端发送的请求后,转发给其他服务器。代理不会改变请求URI直接发送给持有资源的目标服务器。目标服务器返回的响应经过代理服务器传给客户端。
每次通过代理服务器转发请求或响应时,会追加Via首部信息。Via用来标记经过代理的主机信息。
使用代理服务器主要是为了:利用缓存减少网络带宽流量。组织内部针对特定网站的访问控制,获取访问日志等。
代理使用方法:
-
是否使用缓存
-
是否会修改报文
-
缓存代理:代理转发响应是,缓存代理会将资源的副本保存在代理服务器上,当再次请求时,就可以从之前缓存的资源作为响应。
-
透明代理:转请求或响应,不对报文做任何修改的代理类型为透明代理。反之为非透明代理。
网关的工作和代理很相似,网关能使通信线路上的服务器提供非HTTP协议服务。比如,客户端用HTTP协议请求网关,网关用其他协议请求非HTTP协议的服务器。
利用网关可以提高通信的安全性。可以在客户端和网关之间的通信线路加密来确保连接安全。网关可以连接数据库,查询信息。在Web网站用信用卡结算,网关可以和信用卡结算系统绑定。
隧道可以按要求建立与其他服务器的通信线路,使用SSL等加密手段进行通信。目的是确保客户端能与服务器进行安全的通信。隧道不会解析HTTP请求,保持原样转发给之后的服务器。隧道再通信断开时结束。
通过隧道的传输,可以和远距离的服务器安全通信。
缓存服务器是代理服务器的一种,归类在缓存代理类型中。
缓存服务器优点是减少客户端对服务器的请求,也减少服务器的处理请求次数。
缓存服务器上的缓存存在时效性,会因为客户端的要求,缓存的有效期等因素,向源服务器确认资源的有效性。若判断缓存失效,会再次从源服务器获取最新的资源。
客户端也同样可以缓存,缓存也存在时效性,处理方式和缓存服务器一样。