Change language

HttpServer as a simple HTTP server in Python


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: "portnumber" instead of using IP.


Best laptop for Sims 4


Best laptop for Zoom


Best laptop for Minecraft


Best laptop for engineering student


Best laptop for development


Best laptop for Cricut Maker


Best laptop for hacking


Best laptop for Machine Learning


Latest questions


psycopg2: insert multiple rows with one query

12 answers


How to convert Nonetype to int or string?

12 answers


How to specify multiple return types using type-hints

12 answers


Javascript Error: IPython is not defined in JupyterLab

12 answers



Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method