Skip to content

Instantly share code, notes, and snippets.

@aallan
Created April 10, 2018 12:04
Show Gist options
  • 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)
@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