5月阅读周·HTTP权威指南:重定向与负载均衡之IP地址转发篇

举报
叶一一 发表于 2025/05/21 22:47:57 2025/05/21
【摘要】 引言HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不...

引言

HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。

《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。

这本书主要包括以下内容:

  • 第一部分描述了Web的基础构件与HTTP的核心技术
  • 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
  • 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
  • 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
  • 第五部分介绍了发布和传播Web内容的技巧。
  • 第六部分是一些很有用的参考附录,以及相关技术的教程。

重定向与负载均衡

IP地址转发

在IP地址转发中,交换机或其他第四层设备会检测输入分组中的TCP/IP地址,并通过修改目的IP地址(不是目的MAC地址),对分组进行相应的转发。与MAC转发相比,这么做的优点是目标服务器不需要位于一跳远的地方;只需要位于交换机的上游就行了,而且通常第三层的端到端因特网路由都会将分组传送到正确的地方。这种类型的转发也被称为NAT(Network Address Translation,网络地址转换)。

但还有一个问题,就是对称路由。从客户端接受输入TCP连接的交换机管理着连接;交换机必须通过那条TCP连接将响应回送给客户端。这样,所有来自目标服务器或代理的响应都必须返回给交换机。

有以下两种方式可以控制响应的返回路径。

· 将分组的源IP地址改成交换机的IP地址。通过这种方式,无论交换机和服务器之间采用何种网络配置,响应分组都会被发送给交换机。这种方式被称为完全NAT(full NAT),其中的IP转发设备会对目的IP地址和源IP地址都进行转换。图20-9显示了对一条TCP/IP数据报进行完全NAT的效果。这样做的缺点是服务器不知道客户端的IP地址,那种需要认证和计费的Web服务器无法获知客户端的IP地址。

· 如果源IP地址仍然是客户端的IP地址,就要确保(从硬件的角度来看)没有从服务器到客户端的直接路由(绕过交换机的)。这种方式有时被称为半NAT(half NAT)。这种方法的优点是服务器知道客户端的IP地址,但缺点是要对客户端和服务器之间的整个网络都有某种程度的控制。

网元控制协议

NECP(Network Element Control Protocol,网元控制协议)允许网元(NE,路由器和交换机等负责转发IP分组的设备)与服务器元素(SE, Web服务器和代理缓存等提供应用层请求的设备)进行交互。NECP并未显式提供对负载均衡的支持;它只是为SE提供了一种发送负载均衡信息给NE的方式,这样NE就可以在它认为合适的情况下进行负载均衡了。与WCCP一样,NECP也提供了几种转发分组的方式:MAC转发、GRE封装和NAT。

NECP支持例外。SE可以决定它不能为某些特定的源IP地址提供服务,并将这些地址发送给NE。然后,NE可以将来自这些IP地址的请求转发给原始服务器。

代理的重定向方法

到目前为止,我们已经讨论过通用的重定向方法了。(出于潜在的安全考虑)内容也可能需要通过各种代理来访问,或者网络中可能有一个客户端可利用的代理缓存。(因为获取已缓存的内容很可能要比直接连接到原始服务器快得多。)

但Web浏览器客户端怎么才会知道要连接到某个代理上去呢?可以用3种方法来判断:显式的浏览器配置,动态自动配置以及透明拦截。

代理可以顺次将客户端请求重定向到另一个代理上去。比如,没有缓存此内容的代理缓存可能会选择将客户端重定向到另一个代理缓存。这样一来,响应就会来自与客户端请求资源的地址不同的另外一个地址,所以,我们还会讨论几种用于对等代理 -缓存重定向的协议:ICP、CARP和HTCP。

总结

HTTP并不是独自运行在网上的。很多协议都会在HTTP报文的传输过程中对其数据进行管理。HTTP只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web代理和缓存的网络世界中,HTTP报文的目的地不一定是直接可达的。

重定向技术涉及网络工具、重定向技术细节以及判定HTTP报文最终目的地的协议。重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。


作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。