5月阅读周·HTTP权威指南:重定向与负载均衡之超文本缓存协议篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
重定向与负载均衡
CARP是ICP的一个替代品。CARP和ICP都允许管理者通过使用多个代理服务器来提高性能。
CARP对代理服务器做出的确定性解析说明它无须向所有邻居发送查询,这也就意味着这种方法所需发送的缓存间报文会比较少。随着越来越多的代理服务器添加到配置系统中来,缓存系统集群的规模会变得相当大。但CARP的一个缺点就是,如果某个代理服务器不可用了,就要重新修改散列表以反映这种变化,而且必须重新配置现存代理服务器上的内容。如果代理服务器经常崩溃的话,这么做的开销可能会很高。相反,ICP代理服务器中存在的冗余内容就表示它不需要重新配置。另一个潜在的问题是,由于CARP是个新协议,CARP集群中可能不会包含那些现存的、只运行ICP协议的代理服务器。
ICP协议允许代理缓存向兄弟缓存查询文件是否存在。但设计ICP时考虑的是HTTP/0.9协议,因此,向兄弟缓存查询资源是否存在时,只允许缓存发送URL。HTTP版本1.0和1.1引入了很多新的请求首部,这些首部可以和URL一起用来确定文件是否匹配。因此,只在请求中发送URL可能无法得到精确的响应。
超文本缓存协议
HTCP(超文本缓存协议)允许兄弟缓存之间通过URL和所有的请求及响应首部来相互查询文档是否存在,以降低错误命中的可能。而且HTCP允许兄弟缓存监视或请求在对方的缓存中添加或删除所选中的文档,并修改对方已缓存文档的缓存策略。
一个ICP事务和HTCP事务的区别是,后者是另一个对象发现协议。如果附近的缓存中有这个文档,发起请求的缓存可以打开一条到此缓存的HTTP连接,以获取那个文档的副本。ICP和HTCP事务之间的区别体现在请求和响应细节上。HTCP报文的结构如图20-15所示。首部中包含了报文的长度和报文版本。数据部分开始是数据长度,包含了opcode、响应代码、一些标记及ID,最后是实际的数据。可选的认证部分跟在Data小节的后面。
报文字段的详细内容如下所述。
· 首部Header部分包含32位的报文长度,8位的主要协议版本和8位的次要协议版本。报文长度包含所有首部、数据和认证部分的长度。
· 数据Data部分包含了HTCP报文。
HTCP认证
HTCP报文的认证部分是可选的。
设置缓存策略
SET报文允许缓存请求对已缓存文档的缓存策略进行修改。表20-9中给出了可以在SET报文中使用的首部。
HTCP允许通过查询报文将请求和响应首部发送给兄弟缓存,这样可以降低缓存查询中的错误命中率。通过进一步允许在兄弟缓存间交换策略信息,HTCP还可以提高兄弟缓存之间的合作能力。
总结
HTTP并不是独自运行在网上的。很多协议都会在HTTP报文的传输过程中对其数据进行管理。HTTP只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web代理和缓存的网络世界中,HTTP报文的目的地不一定是直接可达的。
重定向技术涉及网络工具、重定向技术细节以及判定HTTP报文最终目的地的协议。重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)