Using the Server Classes
Armed with an understanding of sockets, you are now ready to code your own network servers. But before you go out and try to implement an HTTP server, you should see what Python already offers in terms of modules.
Python features a base HTTP server, a simple HTTP server, and a
CGI HTTP server. As for the simple server, the main task is returning
files from the local directory to clients that ask for them over HTTP.
The CGI server is similar, but is prepared to run CGI scripts and equip
them with the environment variables they need, in order to be
interactive with their browser clients. But the most interesting of all
in this area is the BaseHTTPServer
.
The BaseHTTPServer
module contains a simple socket server (the HTTPServer
class) that accepts HTTP requests.
You can implement a few methods of the BaseHTTPRequestHandler
to work with the
request. The advantage to using these two classes is the power it gives
you when working with clients. Instead of simply serving files or
running external CGI programs, you have the ability to interpret URLs
any way you wish, and return anything you like back to the client. If
you’ve ever worked with application servers that offer their own inline
scripting language (i.e. PHP, Cold Fusion, Active Server Pages, etc.)
then you have seen base HTTP servers in practice. When an application
server such as Cold Fusion is running with your web server, your web
server hands over any HTTP request that has a .cfm extension to the ...
Get Python & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.