Serving Data via HTTP
Python can also act as an HTTP server. The standard Python library contains a number of modules to act as the basis for your own HTTP server; in fact, it even comes with a basic HTTP server all ready to go.
SimpleHTTPServer.py
The Python module SimpleHTTPServer.py implements, as its name suggests, a simple HTTP server. For information on how to run this server, open SimpleHTTPServer.py in any text editor, and read the instructions.
Implementing an HTTP redirector
As an example, let’s implement our own special HTTP server. Our
HTTP server functions similarly to a proxy server: it accepts
requests and redirects those requests to another server. For example,
if you ask the server to redirect to www.python.org, that server appears to have
the same content as www.python.org. Thus, people can access
www.python.org via our server.
The implementation is straightforward. Extend the basic Python HTTP server code, but instead of searching for the file, simply open a HTTP connection to the remote server and redirect the data to your own client:
# HTTPRedirector.py # An HTTP Server that redirects all requests to a named, remote server. # BaseHTTPServer provides the basic HTTP Server functionality. import BaseHTTPServer # httplib establishes our connection to the remote server import httplib import socket # For the error! # The server we are redirecting to. g_RemoteServerName = "www.python.org" class HTTPRedirector(BaseHTTPServer.BaseHTTPRequestHandler): # This function is called ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access