Http 确保未缓存响应

Http 确保未缓存响应,http,caching,cache-control,browser-cache,Http,Caching,Cache Control,Browser Cache,我有一个特定的HTTP响应,我不想缓存它,因为它包含私有/敏感数据 我已将缓存控制设置为无存储, 它应该处理支持HTTP/1.1的客户端 如何使用Expires头对HTTP/1.0执行相同的操作?我应该设置一个1970年的任意时间戳吗?是否有一个特殊值告诉它永远不要缓存?HTTP RFC说: 要将响应标记为“已过期”,源服务器将发送一个等于日期标头值的过期日期 您应该将expires标头设置为过去的日期。您还应该在缓存控制头上设置“必须重新验证”标志 到期日期:1990年1月1日星期五00:00

我有一个特定的HTTP响应,我不想缓存它,因为它包含私有/敏感数据

我已将缓存控制设置为无存储, 它应该处理支持HTTP/1.1的客户端

如何使用Expires头对HTTP/1.0执行相同的操作?我应该设置一个1970年的任意时间戳吗?是否有一个特殊值告诉它永远不要缓存?

HTTP RFC说:

要将响应标记为“已过期”,源服务器将发送一个等于日期标头值的过期日期

您应该将expires标头设置为过去的日期。您还应该在缓存控制头上设置“必须重新验证”标志

到期日期:1990年1月1日星期五00:00:00 GMT
缓存控制:无缓存,必须重新验证

您可以在以下网站上找到一篇关于缓存问题的好文章:

在过去设置Expires头可以确保HTTP/1.0和 HTTP/1.1代理和浏览器不会缓存内容。这个 Cache-control指令还告诉HTTP/1.1代理不缓存 内容。即使可以将代理配置为返回过时内容 当他们不应该时,必须重新确认他们应该 不要这样做


如果我使用的是无存储而不是无缓存,是否必须重新验证?如果不应缓存数据的原因是安全性,则必须添加
无存储
。这可以防止浏览器和web缓存将任何数据存储在非易失性内存中。如果没有这个标志,浏览器仍然可以保留一些用于“返回”和“查看源代码”等功能的数据。您应该解释为什么不希望缓存响应。没有一个存储可能做不到您所希望的,或者它可能是过度杀伤力。@Eric:我不希望缓存响应,因为它包含私有/敏感数据。我会更新这个问题