Les navigateurs Web mettent-ils en cache le contenu sur https
245
Le contenu demandé via https sera-t-il toujours mis en cache par les navigateurs Web ou considèrent-ils ce comportement non sécurisé? Si tel est le cas, est-il possible de leur dire que c'est ok pour mettre en cache?
Par défaut, les navigateurs Web doivent mettre en cache le contenu sur HTTPS de la même manière que sur HTTP, sauf indication contraire explicite via les en-têtes HTTP reçus.
Ce lien est une bonne introduction à la définition des paramètres de cache dans les en-têtes HTTP.
est-il possible de leur dire que c'est ok pour mettre en cache?
Ceci peut être réalisé en définissant la max-agevaleur dans l'en- Cache-Controltête sur une valeur non nulle, par exemple
Cache-Control: max-age=3600
indiquera au navigateur que cette page peut être mise en cache pendant 3600 secondes (1 heure)
Si un utilisateur devait visiter mysite.com et télécharger style.css, quand il irait sur mysite.com , style.css serait-il à nouveau demandé?
Frank
12
Je ne suis pas sûr que nous soyons tous sur la même page ici. Parlons-nous si le contenu HTTPS sera mis en cache par défaut, ou demandons-nous s'il sera mis en cache en supposant certains en-têtes de réponse HTTP? Le lien vers le didacticiel de mise en cache Web auquel vous avez lié à partir de Mark Nottingham indique en fait que le contenu sécurisé (c'est-à-dire HTTPS) ou authentifié ne sera pas mis en cache sauf si l'en-tête de contrôle du cache indique qu'il s'agit d'un contenu public.
Firefox a supprimé l'exigence de Cache-Control: public il y a des années.
GreenReaper
1
Cette affirmation "les navigateurs Web doivent mettre en cache le contenu via HTTPS" est erronée pour moi. Pourquoi devraient-ils le faire? De plus, veuillez vérifier ci-dessous une personne de l'équipe de chrome " code.google.com/p/chromium/issues/detail?id=110649#c6 " Il dit "En fait, rien n'est mis en cache (sur le cache persistant)"
Teoman shipahi
192
À partir de 2010, tous les navigateurs modernes et actuels mettent en cache le contenu HTTPS par défaut, sauf indication contraire explicite.
Il n'est pas nécessaire de définir cache-control:publicpour que cela se produise.
Il apparaît alors que la tendance générale est à autoriser la mise en cache des objets HTTPS; c'est normalement une bonne chose, car les développeurs devraient dire au navigateur de ne pas mettre en cache les objets s'ils sont sensibles à la vie privée, et l'autoriser à le faire lorsqu'ils ne le sont pas (par exemple, images, css, ce qui est très bénéfique pour les performances en particulier sur HTTPS). Merci pour ça.
MarkR
2
Est-il compatible RFC de mettre en cache automatique les ressources HTTPS sans cache-control:public?
Pacerier
Les navigateurs @Pacerier considèrent la RFC comme une "demande de commentaires". le plus souvent, les RFC changent pour refléter ce qui existe déjà sur les navigateurs.
gcb
0
Https est mis en cache par défaut. Ceci est géré par un paramètre global qui ne peut pas être remplacé par des directives de cache définies par l'application. Pour remplacer le paramètre global, sélectionnez l'applet Options Internet dans le panneau de configuration et accédez à l'onglet avancé. Cochez la case "Ne pas enregistrer les pages cryptées sur le disque" dans la section "Sécurité", mais l'utilisation de HTTPS seule n'a aucun impact sur le fait qu'IE décide ou non de mettre en cache une ressource.
Réponses:
Par défaut, les navigateurs Web doivent mettre en cache le contenu sur HTTPS de la même manière que sur HTTP, sauf indication contraire explicite via les en-têtes HTTP reçus.
Ce lien est une bonne introduction à la définition des paramètres de cache dans les en-têtes HTTP.
Ceci peut être réalisé en définissant la
max-age
valeur dans l'en-Cache-Control
tête sur une valeur non nulle, par exempleindiquera au navigateur que cette page peut être mise en cache pendant 3600 secondes (1 heure)
la source
À partir de 2010, tous les navigateurs modernes et actuels mettent en cache le contenu HTTPS par défaut, sauf indication contraire explicite.
Il n'est pas nécessaire de définir
cache-control:public
pour que cela se produise.Source: Chrome , IE , Firefox .
la source
cache-control:public
?Https est mis en cache par défaut. Ceci est géré par un paramètre global qui ne peut pas être remplacé par des directives de cache définies par l'application. Pour remplacer le paramètre global, sélectionnez l'applet Options Internet dans le panneau de configuration et accédez à l'onglet avancé. Cochez la case "Ne pas enregistrer les pages cryptées sur le disque" dans la section "Sécurité", mais l'utilisation de HTTPS seule n'a aucun impact sur le fait qu'IE décide ou non de mettre en cache une ressource.
WinINet ne met en cache que les réponses HTTP et FTP et non les réponses HTTPS. https://msdn.microsoft.com/en-us/library/windows/desktop/aa383928%28v=vs.85%29.aspx
la source