• 托管者:如果某个公司想建立一个网站,但不想自行管理服务器所需的软硬件,就需要主机托管服务,即托管者。

    • 专用托管:一台物理服务器对应一个主机

    • 虚拟主机托管:许多Web托管者通过让一些顾客共享一台计算机来提供便宜的Web主机托管服务,这称为共享主机托管或虚拟主机托管。每个网站看起来是托管在不同的服务器上,但实际上是托管在同一个物理服务器上。————但这并不意味着上千个网站是用一台PC机来提供服务的。托管者可以创建成排同样的服务器,称为服务器集群。

    • 背景:不幸的是,HTTP/1.0中的一个设计缺陷会使虚拟主机托管者抓狂。HTTP/1.0规范中没有为共享的Web服务器提供任何方法来设别要访问的是哪一个托管的网站。

    1、通过URL路径进行虚拟主机托管:可以通过分配不同的URL路径,用这种笨方法把共享服务器上的虚拟站点隔离开。例如,可以给每个逻辑网站一个专门的路径前缀。

    当请求到达服务器时,其中并没有主机名信息,但服务器可以通过路径来区分它们。

    显然这不是一个好方法,/joe和/mary这样的前缀是多余的,并且那种常规输入主机地址显示主页的约定不存在了!

    2、通过端口号进行虚拟主机进行托管:托管者为每个主机提供一个单独的端口号,用来区分每个网站。这个方法也有同样的显著问题,因为终端用户很少去输入端口号的。

    4、通过Host首部进行虚拟主机托管:这个方法主要是在请求首部增加Host首部,用来发送目的主机信息和端口。

    解释Host首部

    • 1)如果HTTP请求报文中的URL是绝对的(也就是说,包含方案和主机部分),就忽略Host首部的值。2)如果HTTP请求报文中的URL没有主机部分,而该请求带有Host首部,则主机/端口的值就从Host首部中取。3)如果通过1)和2)步都无法获得有效的主机,就向客户端返回400 Bad Request响应。
    • 出现下列情况,网站是服务运作的。

    1、服务器宕机

    2、交通拥塞:服务器过载,甚至使它彻底停机

    3、网络中断或掉线

    • 常见解决办法:

    2、内容分发网络