Pour désactiver le cache du navigateur sur le serveur HTTP simple de Python

Serveur HTTP simple http.server

Si vous avez Python, vous pouvez démarrer un simple serveur HTTP pour accéder aux fichiers HTML locaux à partir d'un navigateur avec la commande suivante.

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

Si vous exécutez cette commande et accédez à http: // localhost: 8080 / avec un navigateur sur le même PC, index.html dans le répertoire actuel sera affiché.

difficulté

Il y avait des cas où le navigateur ne faisait pas de demande au simple serveur HTTP même si le cache fonctionnait et se rechargeait, et même si je modifiais le fichier local, je ne pouvais pas le vérifier avec le navigateur. Je peux vider le cache du navigateur, mais c'est un problème.

Par conséquent, la réponse du serveur HTTP simple inclut la date d'expiration du cache de 0.

Script Python désactivé en cache

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()

Si vous enregistrez ce script avec un nom tel que server.py, la commande suivante démarrera le serveur.

$ python server.py 8080

Vous pouvez également vérifier l'en-tête de la réponse avec la commande curl. Ouvrez un autre terminal et exécutez-le.

$ 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

Votre navigateur vous enverra désormais une demande à chaque fois et toutes les modifications apportées à votre fichier local prendront effet immédiatement.

information sur la version

$ python --version
Python 3.8.3

Recommended Posts

Pour désactiver le cache du navigateur sur le serveur HTTP simple de Python
Comment spécifier un serveur HTTP simple Python de répertoire public
Quittez le serveur HTTP simple de Python déclenché par un journal d'accès
Serveur HTTP simple pour python
Remarque sur la façon de vérifier la connexion au port du serveur de licences
Script pour sauvegarder les dossiers sur le serveur sur Google Drive
Remarques sur l'utilisation de matplotlib sur le serveur
Sauvegardez les données vocales acquises par le navigateur au format wav sur le serveur
Connectez-vous au VPN avec votre smartphone et éteignez / rallumez le serveur
Construire un serveur de cache Pypi sur QNAP
Espace var insuffisant sur le serveur de messagerie
Comment régler l'heure du serveur sur l'heure japonaise
Comment mettre à jour manuellement le cache AMP
Construisez un serveur WebDAV simple sur Linux
Publier le répertoire actuel sur le serveur Web
[Flask + Keras] Comment déduire plusieurs modèles à grande vitesse sur le serveur
[Ecriture] Je souhaite afficher les variables utilisées dans le programme côté serveur en temps réel sur le navigateur et les mettre à jour.