HttpServer as a simple HTTP server in Python

Python Methods and Functions

This module serves as a very quick and easy way to start a local Http server on your network.

Previously in Python 2.7, this module was called HttpServer . But in Python3 this module has been merged with the http.server module. Let's get started and run our own Http server.

 Http Server

Importing the httpserver module

This module is part of the standard library, so installing you do not need to write it. To import this module, simply use the following statement:

 import http.server 

You are now ready to start the server. Now let's write some code for serving files.

Starting an HTTP server

If you just want to share your files and directories with another user, you can start the server directly using Python.

Go to any directory you want to share and start the server from there using:

 python -m http.server 9000 

Here we run our local Http server on port 9000.


Now, to connect to the local server, you need to do the following steps:

  1. Log in to the server and find the server's IP address using arp -a on Windows or ip -a | grep inet on Linux.
  2. On the remote client, just type http: // IP_ADDRESS: 9000 / into your browser.


 Basic Http Server

Pay note that you can view the server files or even upload them to the client machine.

 file list

Start HttpServer, which serves a custom index.html file

Although the default server is handy for direct file sharing, you can configure the server by running a separate file.

For example, we'll run our own Http server that uses http.server and socketserver for TCP communication.

MyHttpRequestHandler calls me do_GET () method for serving the request. To serve a custom file for the request, we can override the function by simply defining a different do_GET () method that returns a different value.

 # import http.server # Our http server handler for http requests import soc ketserver # Establish the TCP Socket connections PORT = 9000 class MyHttpRequestHandler (http.server.SimpleHTTPRequestHandler): def do_GET (self): self.path = 'index.html' return http.server.SimpleHTTPRequestHandler.do_GET (self) Handler = MyHttpRequestHandler with socketserver.TCPServer (("", PORT), Handler) as httpd: print ("Http Server Serving at port", PORT) httpd.serve_forever () 

If you name it like , you can start the http server using:



Since we have defined our custom do_GET () function, we can serve the HTML file of the home page using our server, which in this case is index.html. Also, if the server is running on your system, you can directly access the server using localhost: & lt; portnumber & gt; instead of using IP.

Get Solution for free from DataCamp guru