Question

ETags permettre aux navigateurs d'effectuer GETs conditionnelle. Seulement si la ressource en question a été modifiée sera la ressource doit être téléchargé à nouveau. Cependant, le navigateur doit encore attendre que le serveur pour répondre à sa demande.

Une alternative à ETags est d'introduire un jeton dans l'URL pointant vers la ressource:

http://example.com/css/styles.css?token=134124134

ou

http://example.com/css/134124134/styles.css

Les deux approches évitent d'avoir à retélécharger une ressource inchangée.

Cependant, l'utilisation des URL avec des jetons permet au serveur de définir un en-tête d'expiration lointain avenir sur la ressource. Cela permet d'économiser le voyage aller-retour prise par un GET conditionnel -. Si la ressource ne change pas l'URL pointant vers elle ne changera pas

Y a-t-il des avantages à utiliser ETags sur les URL avec des jetons?

Était-ce utile?

La solution

L'inconvénient majeur pour les ressources en lecture seule que je vois est que si nous avons cette approche pour toutes les ressources statiques alors caches clients commenceraient à remplir toutes sortes de ressources hors du.

De plus, pensez à tous les caches intermédiaires qui commencer à tenir des charges de fichiers inutiles.

Vous luttez contre la bande avec cette approche et si elle est devenue populaire alors quelque chose faudrait changer parce que ce n'est pas une solution évolutive.

Pourrait-il y avoir une sorte d'approche hybride où vous utilisez un ensemble limité de jetons et mettre l'expiration assez petit pour qu'une vieille ressource en cache expirerait avant que le jeton a été réutilisé?

Etags sont également utilisés pour les ressources lecture-écriture et dans ce cas je soupçonne que la solution jeton ne fonctionne tout simplement pas.

Autres conseils

Je pense que la plus grande différence / avantage potentiel serait la configuration; Le paramètre URL doit être configuré / configuration dans l'application (par exemple, le code HTML doit effectivement inclure la valeur). ETags sont configurés pour l'ensemble du serveur Web et le code HTML ne doit pas être modifié pour en tirer profit.

En outre, les ETags seront (en supposant qu'ils sont correctement configurés) changement lorsque le fichier pointé à des changements; Ajout d'un jeton à l'URL il besoin d'une « chose » supplémentaire qui dit de changer (soit une personne éditant le code HTML ou d'un paramètre de configuration, etc.).

Avoir une URI constante?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top