Réglage de cache navigateur par défaut ou sur option #65
Labels
No labels
cat
bug
cat
feature
cat
idea
cat
performance
cat
reliability
cat
security
cat
ui
difficulty
high
difficulty
low
difficulty
mid
prio
high
prio
low
prio
mid
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/guichet#65
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Un des cas d'usage principal de deux fleurs est le site web de contenu statique.
Hors aucun réglage de cache navigateur n'est mis par défaut. Cela oblige toutes les visites à re-charger l'ensemble des images, polices, js, css.
C'est une fonctionnalité de base quand on héberge derrière du Apache HTTPD ou Nginx.
L'option peut être par défaut ou sur option (pas par fichier mais sur l'ensemble d'un site).
A noter que les réglages de cache ne sont souvent pas les mêmes entre une applications web (type SaaS, application de gestion) et du web de contenu (site vitrine, blog, ecommerce, média). 2 profils peuvent être créés.
Tous les réglages suivants sont pour du web de contenu.
Le cache navigateur est contrôlé par 4 entêtes HTTP :
Cache-Control
Expires
ETag
Last-Modified
Le plus rétro compatible est l'entête cache control.
Cache-Control: public, max-age=31536000
Le réglage est ici pour 1 an qui est la bonne pratique générale standardisée par Lighthouse.
Plus d'information : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
Expires
Tout comme Cache-Control, l’en-tête Expires permet de définir combien de temps la ressource peut être mise en cache, mais en indiquant une date fixe au lieu d’une durée. En revanche, si l’en-tête Cache-Control est présent avec la directive max-age, l’en-tête Expires est ignoré par le navigateur. Il est généralement préférable d’utiliser l’en-tête Cache-Control plutôt que Expires.
Exemple : Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pour en savoir plus, voir la documentation Mozilla : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires
ETag
L’en-tête ETag définit un identifiant calculé spécifique à une version d’une ressource. Ainsi, lorsqu’une ressource a passé sa période de mise en cache (défini par l’en-tête Cache-Control ou Expires), le navigateur peut demander à nouveau la ressource en précisant le ETag de la version en cache. Si la ressource n’a pas changé depuis (donc si l’ETag est toujours le même), le serveur indiquera au navigateur que la ressource en cache est toujours valable via une réponse avec un code HTTP 304 Not Modified. L’en-tête ETag est donc un supplément à l’en-tête Cache-Control.
Exemple: ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Pour en savoir plus, voir la documentation Mozilla : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
Last-Modified
L’en-tête Last-Modified offre un mécanisme équivalent à ETag mais utilise la date de dernière modification au lieu d’un identifiant calculé. Cette méthode reste moins précise que ETag. Par conséquent, l’en-tête ETag reste préférable à Last-Modified.
Exemple : Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
Pour en savoir plus, voir la documentation Mozilla : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
Le réglage se fait généralement par type de fichier.
Voici les réglages typiques :
HTTPD :
Nginx :
Sans doute lié à cette demande.
Originally posted by @quentin in #43 (comment)
Je plussoie cette fonctionnalité !
Update :
Si vous utilisez hugo, vous avez la possibilité de paramétrer le cache par type assez simplement :
https://gohugo.io/hosting-and-deployment/hugo-deploy/