5月阅读周·HTTP权威指南:重定向与负载均衡之为什么要重定向篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
重定向与负载均衡
为什么要重定向
由于HTTP应用程序总是要做下列3件事情,所以在现代网络中重定向是普遍存在的:
· 可靠地执行HTTP事务;
· 最小化时延;
· 节约网络带宽。
出于这些原因,Web内容通常分布在很多地方。这么做是出于可靠性的考虑。这样,如果一个位置出问题了,还有其他的可用;如果客户端能去访问较近的资源,就可以更快地收到所请求的内容,以降低响应时间;将目标服务器分散,还可以减少网络拥塞。可以将重定向当作一组有助于找到“最佳”分布式内容的技术。
重定向和负载均衡是共存的。大多数重定向部署都包含了某些形式的负载均衡。也就是说,它们可以将输入报文的负载分摊到一组服务器中去。反之,因为输入报文一定会在分担负荷的服务器之间进行某种分布,所以任意形式的负载均衡中都包含了重定向。
重定向到何地
从客户端向目标发送HTTP请求,目标对其进行处理的角度来看,服务器、代理、缓存和网关对客户端来说都是服务器。很多重定向技术都可用于服务器、代理、缓存和网关,因为它们具有共同的,与服务器类似的特征。其他一些重定向技术是专门为特定类型的端点设计的,没有通用性。后面会介绍一些通用及专用的重定向技术。
Web服务器会根据每个IP来处理请求。将请求分摊到复制的服务器中去,就意味着应该把对某特定URL的每条请求都发送到最佳的Web服务器上去(最靠近客户端的、或负载最轻的或采用其他优化策略选择的服务器)。重定向到某台服务器就像将所有需要给汽车加油的司机都送到最近的加油站去一样。
代理希望根据每个协议来处理请求。在理想情况下,某个代理附近的所有HTTP流量都应该通过这个代理传输。比如,如果某代理缓存靠近各种不同的客户端,那么理想情况下,所有请求都应流经这个代理缓存,因为代理缓存上会存储常用的文档,可以直接提供,从而避免通过更长、更昂贵的路径连接到原始服务器。重定向到代理就像从一条主要通路(无论它通往何处)上将流量分流到一条本地快捷路径上去一样。
总结
HTTP并不是独自运行在网上的。很多协议都会在HTTP报文的传输过程中对其数据进行管理。HTTP只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web代理和缓存的网络世界中,HTTP报文的目的地不一定是直接可达的。
重定向技术涉及网络工具、重定向技术细节以及判定HTTP报文最终目的地的协议。重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)