我使用Twisted构建了一个非常简单的代理服务器,该服务器从Internet返回网页。
我想要的是服务器具有两种状态:
从互联网请求并返回任何URL(就像在普通代理服务器中一样)。
对于任何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)的功能?