Прокси-сервер, который может загружать кэшированные URL-адреса в Twisted Python - PullRequest
0 голосов
/ 01 декабря 2018

Я создал очень простой прокси-сервер, использующий Twisted, который возвращает веб-страницы из Интернета.

Я хочу, чтобы сервер имел два состояния:

  1. Любой URL запрашивается из Интернета и возвращается (как в обычном прокси-сервере).

  2. Для любого URL мы сначала ищем, чтобы увидеть, есть ли у нас копия, хранящаяся локально (и если да, то вернуть ее).В противном случае мы запрашиваем URL из Интернета, сохраняем результат и затем возвращаем результат.

В настоящее время я только что реализовал (1), используя один из базовых примеров в Twisted.

# 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)

...