十八章、主机托管

本秂侑毒 提交于 2019-11-29 14:31:09

对内容资源的存储、协调以及管理的职责统称为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、让网站更快

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

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!