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?

slashnick
la source
Oui, les navigateurs mettront le contenu en cache via HTTPS. Vérifiez ce lien neopatel.blogspot.com/2010/02/…
Kalpesh Patel
@KalpeshPatel, cela dépend des paramètres utilisateur . Certains ont défini la mise en cache sur désactivé pour toutes les pages HTTPS blogs.msdn.com/b/ieinternals/archive/2010/04/21/…
Pacerier

Réponses:

134

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)

ConroyP
la source
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.
Edward Shtern,
2
Je
suis
1
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.

Source: Chrome , IE , Firefox .

MarkR
la source
6
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.

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

Ashim Nath
la source