web-dev-qa-db-fra.com

Est-il possible d'invalider le cache lorsque l'adresse du référent est différente?

Supposons que je sers une image et que si quelqu'un visite un forum, je souhaite qu'il télécharge cette image. S'ils visitent à nouveau à partir du même forum, je veux qu'il utilise le cache, mais s'ils visitent à partir d'un autre forum et font référence à la même image, je le souhaite et télécharge à nouveau cette image. Est-ce possible?

1
SamFisher83

Pour ce faire, utilisez l’en-tête HTTP Vary , comme ceci:

Vary: Referer

Notez que vous ne pouvez pas réellement demander au navigateur d’utiliser automatiquement la copie en cache pour toutes les requêtes du "même forum", pour deux raisons: premièrement, le navigateur n’a aucune idée de ce qui constitue un "forum", et deuxièmement, même si vous le souhaitez. défini "même forum" comme, par exemple, "même domaine", l'en-tête Vary ne peut pas l'exprimer. Tout ce que vous pouvez dire, c'est "re-vérifier auprès du serveur pour chaque référent", ce qui signifie en pratique "pour chaque page sur laquelle l'image est utilisée". Par conséquent, vous devez vous assurer que votre serveur prend en charge la revalidation efficace des fichiers, par exemple. via ETagheaders .

2
Ilmari Karonen