Skip to content

Instantly share code, notes, and snippets.

@aallan
Created April 10, 2018 12:04
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save aallan/9416763d42534ae99f6f0228f54160c9 to your computer and use it in GitHub Desktop.
Save aallan/9416763d42534ae99f6f0228f54160c9 to your computer and use it in GitHub Desktop.
A non-caching version of Python's SimpleHTTPServer
#!/usr/bin/env python
import SimpleHTTPServer
class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_my_headers()
SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)
def send_my_headers(self):
self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
self.send_header("Pragma", "no-cache")
self.send_header("Expires", "0")
if __name__ == '__main__':
SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)
@pritster5
Copy link

How does one use this?

@dannya
Copy link

dannya commented Jul 24, 2020

@pritster5 put it into a python file (e.g. server.py) in the directory that you want to serve, then run using the command-line: python server.py - it will then start the server on 0.0.0.0 port 8000 by default.

@Maurogch
Copy link

This only works with python 2.x, use this modification for it to work with v2 or v3

#!/usr/bin/env python
try:
    from http import server # Python 3
except ImportError:
    import SimpleHTTPServer as server # Python 2

class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_my_headers()
        server.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
        self.send_header("Pragma", "no-cache")
        self.send_header("Expires", "0")

if __name__ == '__main__':
    server.test(HandlerClass=MyHTTPRequestHandler)

@blakeperdue
Copy link

Cheers! This works perfectly! Thank you. 😄

@marksherman
Copy link

THANK YOU 😭

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment