Пример кода для базового веб-сервера, заданный http://twistedmatrix.com/trac/, похоже, увеличивает счетчик запросов на два для каждого запроса, а не на 1.
Код:
from twisted.web import server, resource
from twisted.internet import reactor
class HelloResource(resource.Resource):
isLeaf = True
numberRequests = 0
def render_GET(self, request):
self.numberRequests += 1
request.setHeader("content-type", "text/plain")
return "I am request #" + str(self.numberRequests) + "\n"
reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()
Глядя на код, похоже, что вы должны иметь возможность подключиться к URL http://localhost:8080 и увидеть:
I am request #1
Затем обновите страницу и увидите:
I am request #2
Однако я вижу:
I am request #3
Когда я снова обновляюсь, я вижу:
I am request #5
Итак, судя по счетчику, сервер, по-видимому, вызывает функцию"render_GET" дважды для каждого запроса.Я запускаю это на Windows 7, используя Python 2.7.Любая идея, что может происходить или это ожидаемое поведение?
Обновление: код работает отлично, это хитрый браузер.При каждом обновлении страницы браузер отправляет GET-запрос для «/» и «/favicon.ico», который учитывает увеличение на 2, поскольку функция render_GET фактически вызывается дважды за обновление страницы.