Question

Il y a beaucoup d'articles sur le web expliquant pourquoi vous pourriez pas souhaitez utiliser le format inode-mtime-taille par défaut d'Apache pour ETags.

Mais je n'ai pas encore lu quelque chose sur ce qui aurait pu motiver l'inclusion de inode pour Apache en premier lieu. A première vue, il semble utile que si l'on a besoin d'être en mesure de faire la différence entre facsimilés octet-pour-octet de la même ressource, mais cela est sûrement à l'encontre du but même de ETags.

Les auteurs d'Apache ne sont pas connus pour leur remise bâclée des standards Internet, donc je sens que je dois manquer quelque chose. Quelqu'un peut-il expliquer?

EDIT: Je pose cette question ici plutôt que sur ServerFault.com parce que je suis mise en œuvre d'un serveur web plutôt que d'administrer un. Pour en savoir plus sur pourquoi il est une mauvaise idée, voir par exemple ou ici . Tous ces articles recommandent la même chose: supprimer inodes de vos etags. La question est, est-il un avantage quelconque pour les être là?

Était-ce utile?

La solution

Il semble que le genre de chose que l'on pourrait facilement le faire par une mauvaise estimation pour ce qui est le cas commun, ou en privilégiant la correction sur les performances, par défaut, chaque fois qu'il ya une ombre d'un doute.

Permettez-moi de faire une histoire sur la façon dont il aurait pu aller:

Ils décident tôt qu'un hachage / contrôle sur le contenu est une mauvaise idée pour des raisons de performance. « Qui sait combien la taille du fichier peut-être? Nous ne pouvons pas recalculé les tout le temps ... » Ils déterminent la taille et la date que vous obtenez à peu près.

« Mais attendez, » personne A dit: « rien ne vous garantit ne disposez pas d'une collision de taille de fichier. En fait, il y a des cas, comme les binaires du firmware, lorsque la taille du fichier est toujours le même, et il est tout à fait possible que plusieurs sont téléchargés à partir d'une machine dev en même temps, donc cela ne suffit pas de faire la distinction entre les différents contenus. "

Personne B: «.. Hmm, bon point Nous avons besoin de quelque chose qui est intrinsèquement liée au contenu du fichier Quelque chose qui, couplé avec le temps modifié, peut vous dire avec certitude que ce soit le même contenu »

A personne: « Qu'en est-il du inode Maintenant, même si elles Renommez les fichiers (peut-être qu'ils changent « recommandé »! Dans un autre fichier, par exemple), l'ETAG par défaut fonctionne très bien »

Personne B: "Je ne sais pas, inode semble un peu dangereux."

A personne: "Eh bien, ce serait mieux"

Personne B: «. Ouais, bonne question, je suppose que je ne peux pas penser à ce qui ne va pas avoir avec elle, je spécifiquement juste un sentiment mauvais général à ce sujet »

A personne. « Mais au moins il garantit que vous allez télécharger un nouveau si elle a changé le pire qui arrive est de télécharger plus souvent que vous avez besoin, et tous ceux qui savent qu'ils ne doivent pas s'inquiéter à ce sujet peut simplement éteindre. "

Personne B: «. Oui, ce sens Il est probablement très bien pour la plupart des cas, et il semble mieux que les alternatives faciles »

Disclaimer: Je n'ai pas connaissance à l'intérieur de ce que les Apache aurait pu implémenteurs réfléchi. Tout cela est juste deviner-onduleux main, et essayer de faire une histoire plausible. Mais je l'ai certainement vu ce genre de chose arrive assez souvent.

Vous ne savez jamais ce qu'il était que vous ne pensez pas (dans ce cas, que les serveurs d'équilibrage de charge redondants desservant les mêmes fichiers était plus typique que d'avoir à se soucier des collisions de taille + temps). L'équilibrage de charge ne fait pas partie de apache, ce qui le rend plus facile de faire une telle surveillance.

De plus, le mode d'échec est que vous n'avez pas l'utilisation parfaitement efficace du cache (pas que vous avez des données erronées), ce qui est sans doute mieux, mais ennuyeux. Ce qui donne à penser que même si elles ne pensent, ils pouvaient raisonnablement présumer que quelqu'un avec assez d'intérêt pour mettre en place un dispositif d'équilibrage de charge serait également ok avec réglage leurs détails de configuration.

PS: Ce n'est pas sur les normes. Rien ne précise comment vous devez calculer le ETAG, juste qu'il devrait être suffisant pour dire si le contenu a changé, avec une forte probabilité.

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