如何防止服务器网络中的循环http请求?

时间:2015-05-27 14:47:14

标签: python http webserver web.py circular-reference

我有一个web.py程序充当Web服务,根据其目录中的文件提供响应。

现在我想建立一个服务器网络,每个服务器运行一个程序实例。此外,每个服务器都有一个到其他服务器的地址列表。

这背后的动机是允许不同的服务器存储不同的文件,提供(现在分发的)服务的不同部分。

到目前为止,每个服务器都查看自己的文件,创建响应然后连接到网络中邻居的所有响应。

问题是,如果两个服务器在其列表中(直接或间接)相互拥有,则会导致循环请求。

我该怎样防止这种情况?我正在考虑为每个请求添加服务器地址列表。服务器在收到请求时会将自己添加到列表中。它只会请求那些已经不在列表中的邻居的响应。这是一种可行的方法吗?

http(请求)中是否有内容可以从多个服务器收集响应,而不会创建无限循环?

1 个答案:

答案 0 :(得分:0)

你的方法应该有效。

可能会更快检查服务器是否在请求列表中看到自己 - 这意味着它已经处理了该请求,因此它列表中的所有其他服务器已经在响应列表中 - 无需检查每一个。或者可以将其用作冗余的健全性检查?除非您的系统允许在多个服务器上同时进行重复请求。

AFAIK HTTP仅处理客户端/服务器(即点对点)通信,采用1:1请求/响应模式 - 无循环。