MTES-MCT / dialog

Intégration de la réglementation de circulation dans les solutions numériques
https://dialog.beta.gouv.fr
GNU Affero General Public License v3.0
9 stars 0 forks source link

Réflexion autour du cache #353

Open mmarchois opened 1 year ago

mmarchois commented 1 year ago

Cache applicatif Cache par headers (cache-control, exprires) ...

florimondmanca commented 1 year ago

@mmarchois On peut clore ?

mmarchois commented 1 year ago

Non c'est un sujet qui reste d'actualité. Aujourd'hui on a aucune stratégie de cache et à terme ce serait bien de se pencher dessus. Ceci dit il mériterait un peu plus de spécifications 😅

florimondmanca commented 1 year ago

En travaillant sur la landing page collectivités (#447), j'ai lu un peu la doc sur les ESI dans Symfony

https://symfony.com/doc/current/http_cache/esi.html

Une page comme la landing collectivité est essentiellement statique, donc on devrait pouvoir la mettre en cache pendant longtemps (un jour ?). Mais le header peut varier en fonction de l'utilisateur connecté, ce qui fait qu'en pratique elle ne peut pas être mise en cache en entier.

Si je comprends bien, avec ESI on pourrait mettre en cache la page exemptée d'éventuels ESI contenant le contenu variable. On devrait donc créer un contrôleur pour le header, et faire un {{ render_esi() }} dans les pages à mettre en cache qui utiliseraient le header.

Mais d'après la doc, ça n'aura d'effet que si on a un cache HTTP entre le serveur PHP et le client.

Nginx n'a pas l'air d'avoir de support pour ESI. Ce serait donc là que Varnish entrerait en jeu ? Content composition with Edge Side Includes (Varnish docs)