散列文件服务于静态内容Web服务器

时间:2012-12-17 09:56:14

标签: http caching static cdn

我正在编写自己的静态Web内容传递例程。对于缓存,我计划在诸如

之类的URL中包含哈希

/static/file.MD5HASH.png

我正在使用静态编译语言进行开发。我读 https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#cachedstaticfilesstoragehttps://gist.github.com/3207357

现在我的心理问题是如何有效地确定文件的哈希值?我不会在每次向服务器发出请求时计算哈希值。所以我需要一些缓存。

我可以编写一个帮助程序,它接受静态内容的路径,递归计算哈希并将结果存储为

filename.png HASH

在名为.cache.hash.lookup的文件中。此文件在每个请求上都加载到Web服务器启动和状态,因此当即将提供静态文件时,它将在缓存中查找,如果缓存已过时,则重新加载缓存。

这可行吗?请不要使用框架X来建议如何使用框架X,因为我想了解它并编写我自己的例程。

1 个答案:

答案 0 :(得分:0)

阅读您的链接,其目的是存储同一资源的多个版本,因此在插入新文件时会将哈希添加到文件名中。

您的HTTP服务器可能很笨,只是按名称查找文件。 (我看到的另一个优点是你可以盲目地回复“304 Not changed”到任何条件请求,因为文件名中的哈希作为etag。)

或者我错过了什么?