2015-02-26 1 views
0

J'ai un service de repos qui contient un cache, et parfois j'ai besoin d'invalider les enregistrements dans le cache - pas du côté client, mais du côté serveur, car le serveur a produit de nouvelles données. Comment je fais ça? Je veux juste envoyer une sorte de message HTTP au service qu'il devrait invalider l'entrée de cache. Est-ce que ce devrait être un "Get" avec "Cache-Control" où je n'aurais pas besoin de retourner une valeur, mais juste une branche dans le code "Get" pour invalider l'entrée? Ou devrait-il être un "Put" avec un enregistrement vide? Quelle est la meilleure pratique et quelle en est la raison?invalidation de cache HTTP

+0

un bon blog http://www.jondavis.net/techblog/post/2013/08/10/A-Consistent-Approach-To-Client-Side-Cache-Invalidation.aspx –

Répondre

0

lorsque le cache doit être invalidé, il n'est en réalité pas possible du côté client. Les données doivent donc être mises en cache uniquement côté serveur et éviter le transfert de données si les données restent inchangées. Le protocole REST HEAD sert à cette fin, donc vous pouvez écrire l'impl qui retourne l'état dans l'appel REST HEAD si les données demandées sont changées ou non, si elles sont modifiées, le client appelle avec GET protocole.