Tech Tip: Really Simple HTTP Server with Python
If you need a quick web server running and you don't want to mess with setting up apache or something similar, then Python can help. Python comes with a simple builtin HTTP server. With the help of this little HTTP server you can turn any directory in your system into your web server directory. The only thing you need to have installed is Python.
Practically speaking this is very useful to share files inside your local network. Implementing this tiny but hugely useful HTTP server is very simple, its just a single line command.
Assume that I would like to share the directory /home/hisam and my IP address is 192.168.1.2
Open up a terminal and type:
$ cd /home/somedir $ python -m SimpleHTTPServer
That's it! Now your http server will start in port 8000. You will get the message:
Serving HTTP on 0.0.0.0 port 8000 ...
Now open a browser and type the following address:
You can also access it via:
If the directory has a file named index.html, that file will be served as the initial file. If there is no index.html, then the files in the directory will be listed.
If you wish to change the port that's used start the program via:
$ python -m SimpleHTTPServer 8080
If you want to only serve on localhost you'll need to write a custom Python program such as:
import sys import BaseHTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler HandlerClass = SimpleHTTPRequestHandler ServerClass = BaseHTTPServer.HTTPServer Protocol = "HTTP/1.0" if sys.argv[1:]: port = int(sys.argv) else: port = 8000 server_address = ('127.0.0.1', port) HandlerClass.protocol_version = Protocol httpd = ServerClass(server_address, HandlerClass) sa = httpd.socket.getsockname() print "Serving HTTP on", sa, "port", sa, "..." httpd.serve_forever()
Note also that this should also work on Windows or Cygwin.
- Readers' Choice Awards 2013
- Two Pi R
- PostScript, The Forgotten Art of Programming
- A Handy U-Boot Trick
- Returning Values from Bash Functions
- Time-Saving Tricks on the Command Line
- The OpenPhone Project—Internet Telephony for Everyone!
- UX Designer
- Sublime Text: One Editor to Rule Them All?
- Máy sấy quần áo
1 hour 7 min ago
- Services on GlusterFS
1 hour 16 min ago
- máy lọc nước
2 hours 7 min ago
- Máy lọc nước
2 hours 10 min ago
- Reply to comment | Linux Journal
2 hours 57 min ago
- Definitely cool stuff here
3 hours 58 min ago
- thanks for the information
5 hours 9 min ago
- nice information thanks
5 hours 48 min ago
8 hours 43 min ago
- The lost opportunity of security
20 hours 34 min ago