有很多文章的网页详细说明为什么你可能会 想要使用阿帕奇的默认inode-mtime大小格式,为Etag.

但我还没有阅读上的任何东西可能有什么动机列入inode for Apache在第一位。从表面上看,它似乎只是有用的,如果一个人需要能够区分octet-对-八位传真的相同的资源,但这无疑是反对的目的Etag.

Apache的作者不知道他们的草率的交互联网的标准,所以我觉得我必须丢失的东西。任何人都可以详细阐述?

编辑: 我问这个在这里而不是在ServerFault.com 因为我要实现一个网页服务器,而不是给予一个。要了解更多关于为什么它是一个糟糕的想法,例如见 在这里,在这里,.所有这些条款建议同样的事情:删除inode从你的etag.问题是,是否有任何优势,任何对他们在那里?

有帮助吗?

解决方案

这似乎是种事情之一,可以很容易地通过一个错误的猜测为什么常见的情况下,或通过喜欢的正确性能、默认情况下,只要有一丝一毫的怀疑。

请允许我提出了关于怎样的一个故事它可能已经:

他们尽早决定一哈希/校验和内容上是一个糟糕的想法性原因。"谁知道有多大的文件可能是什么?我们不能重新计算那些所有的时间..."所以他们决定大小和日期让你相当接近。

"但是,等一下,"一个人说,"没有什么保证你没有一个文件的大小碰撞。事实上,在有些情况下,例如固件二进制文件,在该文件大小都是一样的,这是完全可能的,几个上传,从一个开发机在同一时间,所以这些是不够的区分不同的内容。"

人B:"嗯,好的点。我们需要的东西的本质绑到的内容的文件。东西,再加修改的时间,可以告诉你对于某些无论是相同的内容。"

人:"那么点?现在,即使他们重新命名的文件(也许他们更改"建议"不同文件,例如),默认etag会工作的现!"

人B:"我不知道,inode似乎有点危险。"

人:"那么,什么会更好?"

人B:"是啊,好的问题。我想我不能想到什么具体地说是错了它,我只是有一般的不好的感觉。"

人:"但至少它保证你会下载一个新的,如果它的改变。最糟糕的情况是你下载往往比你需要和任何人知道他们不必担心它可能只是将其关闭。"

人B:"是啊,这是有道理的。它可能是现在大多数情况下,似乎优于简单的替代方案。"

免责声明:我没有任何内部知识什么Apache实施者可以思考。这是所有的只是手-波浪的猜测,以及试图使一个可信的故事。但我肯定见过这种事情的发生往往不够。

你永远不知道它是什么,你没想的(在这种情况下,即多余的负载平衡的服务器服务于同一文件更为典型的有担心的大小和时间的碰撞).负载均衡不是一部分阿帕奇,这使它更容易使这种监督。

另外,对故障模式在这里,你没有做到完全有效地使用高速缓冲存储器(不是说你得到了错误的数据),这可以说是好的,虽然令人讨厌。这表明,即使他们有没有想到,他们可以合理地假定有足够的兴趣设立一个负载均衡也将确定与调整他们的配置的详细信息。

PS:这不是标准。没有什么规定你应该如何计算etag,只是它应该足以告诉内容是否有改变,与高的概率。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top