《HTTP权威指南》第二十章学习总结--重定向与负载均衡
程序员文章站
2023-12-23 17:28:15
...
**定个小目标,吃透这本书,每天最少一章 CSDN 见**
好快,都20章了,还有3章就结束了
-
为什么要重定向
由于HTTP应用程序总要做下列3件事情,所有现代网络中重定向是普遍存在的:可靠的执行HTTO事务;最小化时延;节约网络带宽。出于这些原因,web内容通常分布在很多地方。这样,如果一个位置出问题了,还有其他地方可用;如果客户端能去访问较近的资源,就可以更快的收到所请求的内容,以降低响应时间;将目标服务器分散,还可以减少网络拥塞。 -
重定向到何地
从客户端发向目标发送HTTP请求,目标对其进行处理的角度来看,服务器,代理,缓存和网关对客户端来说都是服务器。很多重定向技术都可以用于服务器,代理,缓存和网关,因为他们具有共同性。
Web服务器会更新每个IP来处理请求,将请求分摊到复制的服务器中去,这就意味着应该把某个特定URL的每天请求都发送到最佳的WEB服务器上去。代理希望根据每个协议来出处理请求,在理想情况下,某个代理附近的所有HTTP流量都应该通过这个代理来传输。重定向到代理就是从一条主要通路上将流量分流到一条本地的快捷路径上去一样。 -
重定向协议概览
重定向的目标是尽快的将HTTP报文发送到可用的WEB服务器上去。在穿过因特网的路径上,HTTP报文传输的方向或受到HTTP应用程序和报文经由的路由设备的影响。参见以下示例:
配置创建客户端报文的浏览器应用程序,使其将报文发送给代理服务器。
DNS解析程序会选择于报文寻址IP地址,对不同物理地域的不同客户端来说这个IP地址可能不同。
web服务器可以通过HTTP重定向将请求反弹给不同的WEB服务器
-
通用的重定向方法
HTTP重定向,web服务器可以将端的重定向报文发回给客户端,告诉他们去其他地方试试。有些WEB站点会将HTTP重定向作为一种简单的负载均衡形式来使用。
DNS重定向:每次客户端访问一个网站时,域名都必须解析为IP地址,DNS解析程序可能是客户端自己的操作系统,可能是客户端网络中的一套DNS服务器,或者是一台远距离的DNS服务器,DNS运行将几个IP地址管理到一个域中,可以配置DNS解析程序,或对其进行编程,以返回可变的IP地址。
任播寻址:在任播寻址中,几个地理上分散的WEB服务器拥有完全相同的IP地址,而且会通过骨干路由器的最短路径路由功能将客户端的请求发送给离它最近的服务器。要使用这种方法工作,每台服务器都要向邻近的骨干路由器广告,表示自己是一台路由器。web服务器会通过路由器通信协议与邻近的骨干路由器通信。骨干路由器收到发送给任播寻址的分组时会寻找结束那个IP地址的最近路由器。
IP MAC转发:在以太网中,HTTP报文都是以携带地址的数据分组的形式发送的。每个分组都有一个第四层地址,由源IP地址,目的IP地址以及TCP端口号组成,它是第四层设备所关注的地址。每个分组还有一个第二层地址,MAC地址,这是第二层设备关注的地址。
IP地址转发:在IP地址转发中,交换机或其他第四层设备会检查输入分组中的TCP/IP地址,并通过修改目的IP地址,对分组进行相应对策转发,与MAC转发相比,这么做的有点是目标服务器不需要位于一跳远的地方,只需要位于交换机的上游就行,而且通常第三层的端到端因特网路由都会将分组传送到正确的地方。 -
代理的重定向方法
显示浏览器配置:大多数浏览器都可以配置为从代理服务器上获取内容。
代理自动配置:显示配置浏览器使其联系特定的代理,这样会现在网络框架方面的变动,因为它是靠用户来介入并重新配置浏览器的。 -
缓存重定向方法
WCCP可以使路由器将web流量重定向到代理缓存中去。WCCP负责路由器和缓存服务器之间的通信,这样路由器就可以对缓存进行验证,在缓存之间进行负载均衡,并将特定类型的流量发送给特定的缓存。 -
因特网缓存协议ICP
ICP允许缓存在其兄弟缓存中查找内容。以避免查询原始服务器带来的开销。HTTP请求报文的最终目的地可以通过一系列ICP查询确定,从这个角度来说,它就是一个重定向协议。
ICP是一个对象发现协议。它会同时去询问附近的多个缓存,看看他们的缓存是否由特定的URL.。附近的缓存如果有那个URL的话,就会返回一个简短的报文HIT,如果没有,就返回MISS。然后缓存就可以打开一条到拥有此对象的邻居缓存的HTTP链接了。 -
缓存阵列路由协议
代理服务器通过拦截来自当用户的请求,提供所求情WEB对象的缓存副本,极大降低了发往因特网的流量。但随着用户数的郑家,大量流量可能会使代理服务器自身超载。对此问题的一种解决方案就是使用多个代理服务器将负载分散到一组服务器上。CARP是微软和网景提出的一个标准,通过这个协议来管理一组代理服务器,是这组代理服务器对用户来说就像一个逻辑缓存一样。 -
超文本缓存协议HTCP
HTCP允许兄弟缓存之间通过URL和所有的请求及响应首部来互相查询文档是否存在,以降低错误命中的可能。而HTCP允许兄弟缓存监视或请求在对方的缓存中添加或删除所选中的文档,并修改对方缓存文档的缓存策略。