nginx 如何使用Etag

jerryliang 发布于 2024-09-18 587 次阅读


最新版本的nginx 可以在配置文件中写入如下两个配置文件即可启用etag.

etag on;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";

这是这两段配置文件的解释

  1. etag on;
    • 这一行配置指示Nginx为静态资源开启ETag(实体标签)功能。ETag是一个 HTTP 响应头,它是根据文件内容计算出的一个唯一标识符,用于确定请求的资源是否已经被修改。当浏览器请求一个资源时,如果服务器设置了ETag,浏览器会将这个ETag值保存下来。在下一次请求相同的资源时,浏览器会发送一个包含ETag值的If-None-Match请求头,服务器会比较这个ETag值和资源的当前ETag值。如果ETag值相同,则表示资源没有变化,服务器会返回一个304 Not Modified响应,告知浏览器可以使用缓存的资源。
  2. add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    • 这一行配置是在HTTP响应中添加一个Cache-Control头部,它告诉客户端和中间代理(如代理服务器、CDN等)如何缓存页面。
    • public: 表示响应可以被任何中间人(即中间代理服务器)缓存,不仅仅是客户端。
    • must-revalidate: 指示一旦资源过期(即超过了缓存时间),在成功向原始服务器验证之前,缓存不能使用这个资源。
    • proxy-revalidate: 类似于must-revalidate,但它仅适用于共享缓存(例如代理),而不适用于私人浏览器缓存。

0 0 投票数
文章评分
此作者没有提供个人介绍
最后更新于 2024-09-18