through script python http proxy

script - Seriamente simple proxy HTTP de Python?



proxy python script (3)

Esta pregunta ya tiene una respuesta aquí:

He buscado en todas partes y he encontrado millones de servidores proxy Python, pero ninguno hace exactamente lo que me gustaría (creo: s)

He tenido bastante experiencia con python en general, pero soy bastante nuevo en el mundo de los profundos secretos oscuros del protocolo HTTP.

Lo que creo que podría ser útil sería un ejemplo de proxy muy simple al que se pueda conectar y que luego intentará conectarse a la dirección que se le haya pasado.

Además, creo que lo que me ha estado confundiendo es todo lo que hacen las cosas ocultas, por ejemplo, si la clase hereda de BaseHTTPServer.BaseHTTPRequestHandler qué sucede exactamente cuando se solicita una página, como en muchos de los ejemplos que he encontrado no hay ninguna referencia a la ruta variable entonces de repente poof! self.path se utiliza en una función. Supongo que se ha heredado, pero ¿cómo termina con la ruta utilizada?

lo siento si eso no tuvo mucho sentido, ya que mi idea de mi problema es probablemente revuelta :(

Si puede pensar en algo que aclare mi pregunta, por favor, sugiera que la agregue. xxx

Editar:

Además, se agradecería enormemente un enlace a una explicación de los procesos detallados a través de los cuales el proxy maneja la solicitud, solicita la página (cómo leer / modificar los datos en este punto) y la pasa al solicitante original xxxx


"un ejemplo de proxy muy simple que se puede conectar y luego intentará conectarse a la dirección que se le pasa". Esa es prácticamente la definición de un proxy HTTP.

Aquí hay un ejemplo de proxy muy simple: http://effbot.org/librarybook/simplehttpserver.htm

El núcleo de esto es sólo 3 líneas:

class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): self.copyfile(urllib.urlopen(self.path), self.wfile)

Así que es un SimpleHTTPRequestHandler que, en respuesta a una solicitud GET, abre la URL en la ruta (una solicitud a un proxy normalmente se parece a "GET http://example.com/ ", no a "GET /index.html") . Luego simplemente copia lo que pueda leer de esa URL a la respuesta.

Notar que esto es realmente mínimo. No se trata de encabezados, creo.

Por cierto: la path se documenta en http://docs.python.org/library/basehttpserver.html . Se configuró antes de llamar a su método do* .


De la twisted Wiki.

from twisted.web import proxy, http from twisted.internet import reactor from twisted.python import log import sys log.startLogging(sys.stdout) class ProxyFactory(http.HTTPFactory): protocol = proxy.Proxy reactor.listenTCP(8080, ProxyFactory()) reactor.run()


proxpy parece bastante prometedor, es muy sencillo modificar las solicitudes y respuestas.