El código de ejemplo para un servidor web básico determinado por http://twistedmatrix.com/trac/ parece incrementar el contador de la solicitud de dos de cada solicitud, en lugar de 1.La aplicación web impulsada por pitón de ejemplo de ejemplo incrementa el recuento de solicitudes por 2, ¿por qué?
El código:
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()
Mirando el código, Parece que debería ser capaz de conectarse a la URL http://localhost:8080 y ver:
I am request #1
continuación, actualice la página y ver:
I am request #2
Sin embargo, veo:
I am request #3
Cuando restauro de nuevo, ver:
Así que, a juzgar por el contador, el servidor parece llamar a la "render_GET" función dos veces para cada solicitud Estoy ejecutando esto en Windows 7 usando Python 2.7. ¿Alguna idea de lo que podría estar pasando o es este comportamiento esperado?
Actualización: El código funciona a la perfección, es el navegador el que está siendo truculento. Cada actualización de página, el navegador envía una solicitud GET para "/" y "/favicon.ico", que representa el incremento en 2, porque la función render_GET en realidad se está llamando dos veces por actualización de página.
¿Este comportamiento es consistente o cambian los números cada vez que lo intentas? Intente mantener presionada la tecla F5 en su navegador para actualizar rápidamente, luego verifique si los números de solicitud son siempre impares, o si parece omitir los números aleatoriamente. –