web-dev-qa-db-ja.com

iノードをETagに入れるApacheの目的は何ですか?

あなたがそうするかもしれない理由を詳述しているウェブ上にたくさんの記事があります ない ETagにApacheのデフォルトのinode-mtime-size形式を使用したい(例: ここ または ここ を参照)。そのような記事はすべて同じことを推奨しています。ETagからiノードを削除します。

しかし、そもそもApache用のiノードを含める動機となった可能性のあるものについてはまだ何も読んでいません。一見すると、同じリソースのオクテットごとのファクシミリを区別できる必要がある場合にのみ役立つように見えますが、これは確かにETagの目的そのものに反しています。

Apacheの作者は、インターネット標準の扱いがずさんなことで知られていないので、何かが足りないと感じています。誰かが詳しく説明できますか?

1
hatfinch

同じサイズで同じmtimeを持つが、実際には同じファイルではないリソースを区別することだと思います。これは簡単に実行できます。たとえば、内容は異なるがサイズが同じ(それほど難しくはない)でmtimeが同じ(よりトリッキーですが、ディレクトリツリーを別の場所からコピーした場合は、まだ難しくありません)の2つのファイルがあるとします。 abで、Apacheを介してaを提供しています。今mv b aそしてiノードがaで変化する間、サイズとmtimeは変化しません-そしてあなたはiノードなしで小川を上っています。

2
womble