sniffing btw my web browser and a server

Antti Kuntsi kuntsi at cc.helsinki.fi.spam.no
Thu Dec 28 05:11:17 CET 2000


June Kim <junaftnoon at nospamplzyahoo.com> wrote:
> I'm doing some sort of web client programming, and have to observe the
> messages that my browser and web-servers transmit, being tired of guessing
> what the messages'd be and looking up the references and the specifications.
> Anyone has done it in Python or knows how it could be done?

Writing a simple HTTP-proxy in Python that dumps all the data (or just the
HTTP-headers for both requests and replies, if that is enough) is quite easy:

-create a INET-socket, and start accepting connections.
-When you get a connection, read the request, and print the data to a file
 or stdout
-Open a socket to the server (you get this from the first line of the request,
 as the request made by browser to your HTTP-proxy tells you this)
-write the request to the server
-read the response from the server, dump/print the data, and send it to the
 browser.
-go back to accepting connections.

To make it fancy, you can make it multiplexed or threaded, but it's not
absolutely necessary.

Do note, that you have to
1) change the first line of the request when you make the req to the server
   i.e. from HTTP-proxy-request to HTTP-server-request
or
2) open the connection to a real HTTP-proxy instead of the server, and let it
   take care of figuring out the web-server's address and port.

.antti
-- 
         /"\                           |    iki.
         \ /     ASCII Ribbon Campaign |    fi/
          X      Against HTML Mail     |    mickut
         / \



More information about the Python-list mailing list