2015-04-14 4 views
1

J'essaie d'améliorer les capacités de cache de mon application voiles.Comment utiliser Etag avec sailsjs

Voiles génèrent un Etag avec sa réponse, mais lorsque je tente de faire une requête GET avec un en-tête « if-None-Match » contenant eTag de la réponse précédente, je ne peux pas obtenir un 304 pas modifié réponse du serveur (la réponse n'est en effet pas modifiée et l'Etag que je reçois est le même que le précédent).

J'utilise POSTMAN pour tester les réponses du serveur.

Existe-t-il un moyen pour un serveur Sails d'envoyer un tel code d'état sur des réponses non modifiées? Je ne trouve aucune ressource pour l'utilisation de Etag dans voiles doc.

Merci.

Répondre

0

Sails.js est basé sur Express.js et les ETags sont générés par Express.js. Et selon this answer, ETags faibles sont générés en utilisant CRC32 (source), forts ETags sont générés en utilisant MD5 (source).

J'utilise DHC - REST/HTTP API Client avec Si-Aucun-Match en-tête, il fonctionne parfaitement (retour 304 Non Modifié).

Et je trouve c'est parce que POSTMAN envoyer en-tête NO-CACHE au serveur pour des fins de test

'cache-control': 'no-cache', 

Vous pouvez suivre this answer et désactiver cette fonction alors tout ira bien.