覆盖ETag查找?

时间:2010-11-26 11:44:33

标签: django apache http etag

我想覆盖Etag查找,因为显然它们会减慢页面速度,因为每个请求的延迟都非常大!

过期标题似乎不起作用......

任何想法?

3 个答案:

答案 0 :(得分:0)

在视图的响应对象中,您可以将ETag设置为您喜欢的任何内容。这要求您使用CommonMiddleware并将USE_ETAGS设置为True

但是,如果您真正想做的是根本不打算调用视图,为什么不使用缓存装饰器并缓存结果呢?

The code for etag handling.

答案 1 :(得分:0)

我希望人们会提出问题,说明他们正在运行的apache版本。这很快就会让人感到困惑。查看FileETag指令(至少对于apache 2.0和2.2)。

FileETag none //不会为文件生成和ETag

请参阅FileETag

答案 2 :(得分:0)

  

每个请求都很大!

除非您在apache安装或非常奇怪的文件系统上有一些非常时髦的自定义补丁,否则生成eTAG的工作量不依赖于文件的大小 - 默认情况下Apache使用inode编号,mod时间和大小

通常,条件请求实际上可以大大减慢网站的速度 - 应该避免(最好通过剥离if-none-match / if-modified-since请求标头)。有一次不是这种情况,你发布非常大的文件(例如视频,PDF)。如果您无法修改请求标头(例如,使用Apache< 2.0),那么您需要从响应中删除ETag和最后修改过的 - 或者定期刷新文件中的时间戳。

'Expires'标头是一个HTTP / 1.0指令 - 那里的HTTP / 1.0流量很少 - 通常来自通过代理工作的配置不当的MSIE6浏览器。您应该发送Cache-Control标头。