代理服务器,可以选择在Python的Twisted中加载缓存的URL

时间:2018-12-01 07:13:28

标签: python proxy twisted

我使用Twisted构建了一个非常简单的代理服务器,该服务器从Internet返回网页。

我想要的是服务器具有两种状态:

  1. 从互联网请求并返回任何URL(就像在普通代理服务器中一样)。

  2. 对于任何URL,我们首先搜索以查看是否有本地存储的副本(如果是,则将其返回)。否则,我们会从互联网上请求URL,保存结果,然后返回结果。

我目前仅使用Twisted中的一个基本示例实现了(1)。

# proxy.py

from twisted.web import proxy, http
from twisted.internet import protocol, reactor
from twisted.python import log
import sys


log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
    protocol = proxy.Proxy

if __name__ == '__main__':
    reactor.listenTCP(8080, ProxyFactory())
    reactor.run()

这可以通过运行例如进行测试

python proxy.py

和另一个终端

curl -x localhost:8080 http://example.com

我将如何修改此代码,使其包含(2)的功能?

0 个答案:

没有答案