5月阅读周·HTTP权威指南:重定向与负载均衡之WCCP重定向篇

举报
叶一一 发表于 2025/05/21 22:49:48 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内容的技巧。
  • 第六部分是一些很有用的参考附录,以及相关技术的教程。

重定向与负载均衡

WCCP重定向

Cisco系统公司开发的WCCP可以使路由器将Web流量重定向到代理缓存中去。WCCP负责路由器和缓存服务器之间的通信,这样路由器就可以对缓存进行验证(确保它们已启动且正在运行),在缓存之间进行负载均衡,并将特定类型的流量发送给特定的缓存了。WCCP版本2(WCCP2)是个开放的协议。这里我们会探讨WCCP2。

1.WCCP重定向是怎样工作的

下面是WCCP重定向在HTTP上工作过程的概述(WCCP对其他协议的重定向过程也是类似的)。

· 启动包含了一些支持WCCP的路由器和缓存的网络,这些路由器和缓存之间可以相互通信。

· 一组路由器及其目标缓存构成一个WCCP服务组。服务组的配置说明了要将何种流量发往何处、流量是如何发送的以及如何在服务组的缓存之间进行负载均衡。

· 如果服务组配置为重定向HTTP流量,服务组中的路由器就会将HTTP请求发送给服务组中的缓存。

· HTTP请求抵达服务组中的路由器时,路由器会(根据对请求IP地址的散列,或者“掩码/值”的配对策略)选择服务组中的某个缓存为请求提供服务。

· 路由器向缓存发送请求分组,可以用缓存的IP地址来封装分组,也可以通过IP MAC转发来实现。

· 如果缓存无法为请求提供服务,就将分组返回给路由器进行普通的转发。

· 服务组中的成员会互相交换心跳报文,不断验证对方的可用性。

2.WCCP2报文

WCCP2报文有4种。

WCCP2 HERE I AM的报文格式为:

WCCP Message Header
Security Info Component
Service Info Component
Web-cache Identity Info Component
Web-cache View Info Component
Capability Info Component (可选)
Command Extension Component (可选)

WCCP2 I SEE YOU的报文格式为:

WCCP Message Header
Security Info Component
Service Info Component
Router Identity Info Component
Router View Info Component
Capability Info Component (可选)
Command Extension Component (可选)

WCCP2 REDIRECT ASSIGN的报文格式为:

WCCP Message Header
Security Info Component
Service Info Component
Assignment Info Component, or Alternate Assignment Component

WCCP2 REMOVAL QUERY的报文格式为:

WCCP Message Header
Security Info Component
Service Info Component
Router Query Info Component

3.报文组件

每条WCCP2报文都由一个首部和一些组件构成。WCCP首部信息包含报文类型(Here I Am、I See You、Assignment或Removal Query)、WCCP版本和报文长度(不包括首部的长度)。

每个组件都以一个描述组件类型和长度的4字节首部开始。组件长度不包括组件首部的长度。

4.服务组

服务组(service group)由一组支持WCCP的路由器和缓存组成,它们之间可以交换WCCP报文。路由器会向服务组中的缓存发送Web流量。服务组的配置确定了如何将流量分配到服务组的缓存中去。路由器和缓存会在Here I Am和I See You报文中交换服务组的配置信息。

5.GRE分组封装

支持WCCP的路由器会用服务器的IP地址将HTTP分组封装起来,将其重定向到特定的服务器上去。分组封装中还包含了IP首部的proto字段,用来说明通用路由器封装(GRE)。proto字段的存在告诉接收代理,它有一个封装的分组。分组被封装起来,客户端的IP地址就不会丢失了。

6.WCCP的负载均衡

除了路由功能之外,WCCP路由器还可以在几个接收服务器之间进行负载均衡。WCCP路由器及其接收服务器会交换心跳报文(heartbeat message),以便相互通知自己处于启动运行状态。如果某特定接收服务器停止发送心跳报文,WCCP路由器就会将请求流量直接发送到因特网上,而不会将其重定向给那个节点。节点重新提供服务时,WCCP路由器会再次开始接收心跳报文,并继续向节点发送请求流量。

总结

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

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


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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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