Python Forum

Full Version: HTTP Server
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am thinking about programming an http server for study tasks. Researching about python modules I identified (socketserver) that establishes the client x server connection in the TCP / IP layer. Using the example below I can obtain the request header:

import socketserver

class MyTCPHandler(socketserver.BaseRequestHandler):
    """
    The request handler class for our server.

    It is instantiated once per connection to the server, and must
    override the handle() method to implement communication to the
    client.
    """

    def handle(self):
        # self.request is the TCP socket connected to the client
        self.data = self.request.recv(1024).strip()
        print("{} wrote:".format(self.client_address[0]))
        print(self.data)
        # just send back the same data, but upper-cased
        self.request.sendall(self.data.upper())

if __name__ == "__main__":
    HOST, PORT = "localhost", 9999

    # Create the server, binding to localhost on port 9999
    with socketserver.TCPServer((HOST, PORT), MyTCPHandler) as server:
        # Activate the server; this will keep running until you
        # interrupt the program with Ctrl-C
        server.serve_forever()
This example works but I need to know how to implement the following features:

- Respond to header requests for the client side
- Send the html page as a reply
You can study code found here. You might possibly, find exactly what you are looking for.
It's not something that I have had need for, so can't recommend one package over another.
However, there's a lot of code that would be worth looking at just to get ideas.
https://pypi.org/search/?q=client%2Fserver