• 十八章、主机托管


    对内容资源的存储、协调以及管理的职责统称为Web主机托管

    许多Web托管者通过一些顾客共享一台计算机来提供便宜的Web主机托管服务,这称之为共享主机托管或虚拟主机托管

    1、设法让虚拟主机托管正常工作的四种方法:

    通过URL路径进行虚拟主机托管(了解)

      在URL中添加专门的路径部分,以便服务器判断是哪个网站

    通过端口号进行主机托管(了解)

      为每个站点分配不同的端口号,这样请求就由Web服务器的单独实例处理

    通过IP[地址进行主机托管(常用)

      为不同的虚拟站点分配专门的IP地址,把这些地址都绑定到一台单独的机器上。这样Web服务器就可以通过IP地址来识别网站名了

    遇到的问题:

      在计算机系统上能绑定的虚拟IP地址通常是有限的

      IP地址稀缺资源

      托管者通过复制服务器来增加容量时,IP地址短缺的问题更严重。

    通过Host首部进行主机托管

      浏览器和服务器的实现者扩展了HTTP,把原始的主机名提供给服务器。

      把主机名(和端口号)放在所有请求的Host扩展首部中传送。

    GET /index.html HTTP/1.1
    User-agent :SuperBrowser  v1.3
    Host : www.joes-hardware.com

    2、HTTP/1.1的Host首部

    2.1、Host首部是HTTP/1.1的请求首部,定义在RFC2068中。绝大多数HTTP客户端(即使是不遵循HTTP/1.1的客户端),都实现了Host首部。

    Host首部描述了所请求的资源所在的因特网主机和端口号,和原始的URL中的一样

    Host = "Host" ":"  host [ ":" port ]

     注:

    a)、如果Host首部不包含端口,就使用地址方案中默认的端口

    b)、如果URL中包含IP地址,Host首部就应当包含同样的地址;

    c)、如果URL中包含主机名,Host首部就必须包含同样的名字;

    d)、如果URL中包含主机名,Host首部就不应当包含URL中这个主机名对应的IP地址

      因为这样会扰乱虚拟主机托管服务器的工作,它在同一个IP地址上堆叠了很多虚拟站点

    e)、如果URL中包含主机名,Host首部就不应当包含这个主机名的其它别名,因为这样会扰乱虚拟主机托管服务器的工作

    f)、如果客户端显式地使用代理服务器,客户端就必须把原始服务器,而不是代理服务器的名字和端口放在Host首部中。

    g)、Web客户端必须在所有请求报文中包含Host首部;

    h)、Web代理必须在转发请求报文之前,添加Host首部;

    j)、HTTP/1.1的Web服务器必须用400状态码来响应所有缺少Host首部字段的HTTP/1.1请求报文

      

    2.2、缺失Host首部可能会把用户导向某个默认的Web页面,也可能返回一个错误页面建议用户升级浏览器。

    2.3、

    主原始服务器(master origin server):含有原始内容

    复制原始服务器(replica origin server): 从主原始服务器接收内容的镜像服务器

    2.4、把客户端的请求导向特定的服务器

      HTTP重定向:该内容的URL会解析到主服务器的IP地址,然后它会发送重定向到复制服务器

      DNS重定向:请求内容的URL会解析到几个IP地址,DNS服务器可以选择发送给客户端的IP地址

    2.5、内容分发网络

      CDN:对特定内容进行分发的专门网络。这个网络中的节点可以是Web服务器、反向代理或缓存

      反向代理和镜像服务器之间的区别在于反向代理通常是需求驱动的。它们不会保存原始服务器的全部内容副本,它们只保存客户端请求的那部分内容。

      反向代理具有“预取特性” -----可以在用户请求之前就从服务器上载入内容

    2.6、让网站更快

      服务器集群和分布式代理缓存或反向代理服务器分散了网络流量,可以避免拥塞,分发内容使之更靠近终端用户,这样从服务器到客户端的传输时间就更短。

       请求和响应穿过因特网,在客户端和服务器端传输的方式是影响资源访问速度最主要的因素。

  • 相关阅读:
    jquery.FixedColumns 滚动兼容问题
    面向对象三大特性:继承、封装、多态
    jquery.chosen.js和select2使用笔记
    Git查看、删除、重命名远程分支和tag(转载)
    GIT忽略追踪文件
    git代码量统计(转载)
    SQL SERVER如何收缩日志-通过脚本收缩(转发)
    GIT常用命令
    解决 git extensions 每次提交需要输入用户名和密码
    Mysql 5.7初始化密码
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/11519579.html
Copyright © 2020-2023  润新知