一台Web服务器可搭建多个独立域名的Web网站,也可作为通信路径上的中转服务器提升传输效率。
用单台虚拟主机实现多个域名
HTTP/1.1规范允许一台HTTP服务器利用虚拟主机(Virtual Host、虚拟服务器)的功能搭建多个Web站点。
由于在一台服务器内,所以访问的域名都具有相同的IP地址,因此必须在请求字段的HOST首部
内完整指定主机名或域名URI。
通信数据转发程序:代理、网关、隧道
HTTP通信时,除客户端、服务器外,用于通信数据转发的应用程序配合服务器工作,如代理、网关、隧道等。
这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应再转发给客户端。
源服务器:持有资源实体的服务器。
-
代理
代理是一种有转发功能的应用程序。- 代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器,代理不会改变请求URI,会直接发送给前方持有资源的目标服务器(源服务器),从源服务器返回的响应经过代理服务器后再传给客户端。
- 在HTTP通信过程中,可级联多台代理服务器。每经过代理服务器转发请求或响应时,会追加写入via首部信息。
- 使用代理服务器的理由:利用缓存技术减少网络带宽的流量、组织内部针对特定网站的的访问控制、以获取访问日志为主要目的等。
- 代理按两种基准分类:是否使用缓存、是否修改报文。
- 缓存代理(Caching Proxy):缓存代理会预先将资源的副本缓存在代理服务器上,当再次接收相同的请求时,直接返回缓存资源。反之就是不使用缓存的代理。
- 透明代理(Transparent Proxy):不对报文做任何加工的代理类型。反之,会报文内容进行加工代理的被称为非透明代理。
-
网关
网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对该请求进行处理。有时客户端都不会察觉,自己的通信目标是一个网关。
它的工作机制和代理十分相似,但网关能使通信线路上的服务器提供非HTTP协议服务。
利用网关能提供通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。
如网关可以连接数据库并查询、使用信用卡结算时,网关可以和信用卡结算系统联动。 -
隧道
隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。隧道本身不会解析HTTP请求,并会在通信双方断开连接时结束。
它可按要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信,隧道的目的是确保客户端能与服务器进行安全的通信。
保存资源的缓存
缓存:指代理服务器或客户端本地磁盘内保存的资源副本。
利用缓存可减少对源服务器的访问,节省了通信流量和通信时间。
-
缓存的有效期限
若缓存服务器若判断失效,则将再次从源服务器上获取新资源。 -
客户端的缓存
浏览器缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取。
当判断缓存过期后,浏览器会再次请求新资源。