So deaktivieren Sie den Browser-Cache auf dem einfachen HTTP-Server von Python

Einfacher HTTP-Server http.server

Wenn Sie über Python verfügen, können Sie mit dem folgenden Befehl einen einfachen HTTP-Server für den Zugriff auf lokale HTML-Dateien über einen Browser starten.

$ python -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

Wenn Sie diesen Befehl ausführen und mit einem Browser auf demselben PC auf http: // localhost: 8080 / zugreifen, wird index.html im aktuellen Verzeichnis angezeigt.

Ärger

Es gab Fälle, in denen der Browser keine Anfrage an den einfachen HTTP-Server stellte, selbst wenn der Cache effektiv war und neu geladen wurde, und selbst wenn die lokale Datei bearbeitet wurde, konnte sie vom Browser nicht bestätigt werden. Ich kann den Cache aus dem Browser löschen, aber es ist ein Ärger.

Daher enthält die Antwort vom einfachen HTTP-Server das Cache-Ablaufdatum 0.

Python-Skript mit Cache-Deaktivierung

import http.server
import sys

port = int(sys.argv[1])

class NoCacheHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header('Cache-Control', 'max-age=0')
        self.send_header('Expires', '0')
        super().end_headers()

httpServer = http.server.HTTPServer(('', port), NoCacheHTTPRequestHandler)
httpServer.serve_forever()

Wenn Sie dieses Skript unter einem Namen wie "server.py" speichern, wird der Server mit dem folgenden Befehl gestartet.

$ python server.py 8080

Sie können den Antwortheader auch mit dem Befehl curl überprüfen. Öffnen Sie ein anderes Terminal und führen Sie es aus.

$ curl -I http://localhost:8080/
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.8.3
Date: Thu, 12 Nov 2020 13:31:44 GMT
Content-type: text/html
Content-Length: 1178
Last-Modified: Thu, 12 Nov 2020 13:21:38 GMT
Cache-Control: max-age=0
Expires: 0

Ihr Browser sendet Ihnen jetzt jedes Mal eine Anfrage, und alle Änderungen an Ihrer lokalen Datei werden sofort wirksam.

Versionsinformation

$ python --version
Python 3.8.3

Recommended Posts

So deaktivieren Sie den Browser-Cache auf dem einfachen HTTP-Server von Python
So geben Sie das öffentliche Verzeichnis Python Simple HTTP Server an
Beenden Sie Pythons Simple HTTP Server, der durch ein Zugriffsprotokoll ausgelöst wird
Einfacher HTTP-Server für Python
Ein Hinweis zum Überprüfen der Verbindung zum Lizenzserver-Port
Skript zum Sichern von Ordnern auf dem Server in Google Drive
Hinweise zur Verwendung von matplotlib auf dem Server
Speichern Sie die vom Browser erfassten Sprachdaten im WAV-Format auf dem Server
Stellen Sie mit Ihrem Smartphone eine Verbindung zum VPN her und schalten Sie den Server aus / ein
Erstellen Sie einen Pypi-Cache-Server auf QNAP
Nicht genügend var-Speicherplatz auf dem Mailserver
So stellen Sie die Serverzeit auf japanische Zeit ein
So aktualisieren Sie den AMP-Cache manuell
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Veröffentlichen Sie das aktuelle Verzeichnis auf dem Webserver
[Flask + Keras] So schließen Sie mehrere Modelle mit hoher Geschwindigkeit auf dem Server ab
[Schreiben] Ich möchte die im Programm verwendeten Variablen auf der Serverseite in Echtzeit im Browser anzeigen und aktualisieren.