与HTTP协作的Web服务器 - 用单台虚拟主机实现多域名

196 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情


一台Web服务器可搭建多个独立域名的Web网站,也可以作为通信路径上的中转服务器提升传输效率


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

运用虚拟主机的功能,一台服务器可以搭建多个Web站点。在物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具有多台服务器。域名通过DNS服务映射到IP地址,之后以IP地址的形式对服务器进行访问

在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域名的web网站,因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI

Snip20210721_1.png


通信数据转发程序(代理、网关、隧道)

HTTP通信时,除了客户端和服务器以外,还有一些用于通信数据转发的程序,这些程序可以将请求转发给通信线路上的下一个服务器,并且能接收从那台服务器发送的响应再转发给客户端

代理

  • 代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端

  • 代理服务器行为路径:在HTTP通信过程中,可联级多台代理服务器,请求和响应的转发会经过数台类似锁链一样连接起来的代理服务器。转发时,需要附加Via首部字段以标记处经过的主机信息。

    Snip20210721_4.png

  • 代理服务器作用:利用缓存技术减少网路带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的

  • 代理服务器使用方法

    • 是否使用缓存

      代理转发响应时,缓存代理会预先将资源的副本(缓存)保存在代理服务器上,当代理再次接收到相同资源的请求时,就可以不从原服务器那里获取,直接将之前缓存作为响应返回

    • 是否会修改报文

      转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理,对报文内容进行加工的代理叫非透明代理

网关

  • 网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关

  • 网关的工作机制和代理相似。不同的是网关能使通信线路上的服务器提供非HTTP协议服务

    Snip20210721_5.png

  • 利用网关能够提高通信的安全性。因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用SQL语句查询数据等

隧道

  • 隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序

  • 隧道的目的是确保客户端能与服务器进行安全的通信

    Snip20210721_6.png