以编程方式为网页生成etag的好方法是什么,这是推荐的做法吗?有些网站建议关闭etags,其他网站建议手动生成etags,有些网站建议保留默认设置 - 这里最好的方法是什么?
我建议生成内容的哈希,例如md5($content).
此外,为了防止散列冲突,您可能希望向其中添加例如内容元素的 ID(如果合适的话)。
Geo*_*rgi -5
当您在网站生成器前面使用某种缓存机制时,ETag 确实会有所帮助。浏览器本身不使用它们,它们监听“(如果)修改自”或“年龄”标头结构,据我所知。
无论如何,由于其简单的性质,提供带有 ETag 的 http 标头是没有问题的。我听说许多 Web 服务器只是获取文件的位置和文件的时间戳,并对这些数据进行 md5 哈希。
例如,我们使用我们的软件构建了一个简单但有效的 etag。我们软件中的每个“内容单元”(即 html、jpeg、gif...)都有一个唯一的 id 和版本号(即 jpeg 的 id 为“17”,版本为“2”,这意味着它被更改过一次) 。因此 ETag 只是字符串“id-version”,此处:“17-2”。下一次更改将是“17-3”,以便缓存器识别更改,完全加载新内容部分(一次)并将其存储在自己的缓存中。
但您也可以使用 URL 和时间戳(即文件的时间戳)。