《HTTP权威指南》每章的知识点总结
Web主机托管:对内容资源的存储、协调以及管理的职责统称为Web主机托管。主机托管是服务器的主要功能之一。
托管者:如果某个公司想建立一个网站,但不想自行管理服务器所需的软硬件,就需要主机托管服务,即托管者。
专用托管:一台物理服务器对应一个主机
虚拟主机托管:许多Web托管者通过让一些顾客共享一台计算机来提供便宜的Web主机托管服务,这称为共享主机托管或虚拟主机托管。每个网站看起来是托管在不同的服务器上,但实际上是托管在同一个物理服务器上。————但这并不意味着上千个网站是用一台PC机来提供服务的。托管者可以创建成排同样的服务器,称为服务器集群。
背景:不幸的是,HTTP/1.0中的一个设计缺陷会使虚拟主机托管者抓狂。HTTP/1.0规范中没有为共享的Web服务器提供任何方法来设别要访问的是哪一个托管的网站。
造成的后果:如果在一台物理服务器上托管了两个网站www.site1.com和www.site2.com。用户1想去获取www.site1.com的主页,于是在它发送了的请求报文为请求行GET /index.html HTTP/1.0,这里并没有发送主机信息,所以很可能服务器返回的是www.site2.com的主页。
1、通过URL路径进行虚拟主机托管:可以通过分配不同的URL路径,用这种笨方法把共享服务器上的虚拟站点隔离开。例如,可以给每个逻辑网站一个专门的路径前缀。
Joe的五金商店可以是:http://www.joes-hardware.com/joe/index.html
Mary的古董拍卖店可以是:http://www.marys-antiques.com/mary/index.html
当请求到达服务器时,其中并没有主机名信息,但服务器可以通过路径来区分它们。
请求Joe的五金商店的网址是 GET /joe/index.html
请求Mary的古董拍卖店的网址是 GET /mary/index.html
显然这不是一个好方法,/joe和/mary这样的前缀是多余的,并且那种常规输入主机地址显示主页的约定不存在了!
2、通过端口号进行虚拟主机进行托管:托管者为每个主机提供一个单独的端口号,用来区分每个网站。这个方法也有同样的显著问题,因为终端用户很少去输入端口号的。
3、通过IP地址进行虚拟主机托管:一个更常用的、更好的方法是通过IP地址进行虚拟化。每个虚拟网站都分配一个或多个唯一的IP地址。所有虚拟网站的IP地址都绑定到同一个共享的服务器上。服务器可以查询HTTP连接的目的IP地址,并以此来判断客户端的目标网扎。这种方法对大的托管者来说,虚拟IP的主机托管能够工作,但它会带来一些麻烦。1)ip地址是有限制的,服务器上托管成百上千的虚拟站点的服务商不一定能实现愿望。2)IP地址是稀缺资源。3)服务器通过赋值服务器来增加容量时,ip地址短缺的问题就更严重了。
4、通过Host首部进行虚拟主机托管:这个方法主要是在请求首部增加Host首部,用来发送目的主机信息和端口。
1、服务器宕机
2、交通拥塞:服务器过载,甚至使它彻底停机
3、网络中断或掉线
1、镜像的服务器集群,涉及的技术:HTTP重定向:该内容的URL会解析到主服务器的ip地址,然后它会发送重定向到复制服务器。DNS重定向:该内容的URL会解析到四个IP地址,DNS服务器可以选择发送给客户端的IP地址。
2、内容分发网络