概述ETag 作为资源标识符用于条件请求。客户端携带 `If-None-Match` 与 ETag,服务器匹配后返回 `304 Not Modified`,避免重复传输。用法/示例HTTP/1.1 200 OK

ETag: "686897696a7c876b7e"

GET /asset.css HTTP/1.1

If-None-Match: "686897696a7c876b7e"

// Node/Express 示例

app.get('/asset.css', (req, res) => {

const etag = computeHash(content)

if (req.headers['if-none-match'] === etag) res.status(304).end()

else { res.set('ETag', etag); res.type('text/css').send(content) }

})

工程建议使用强/弱验证器(`W/`)区分字节级与语义级变更;与缓存头协同治理。确保跨节点一致的 ETag 生成,避免负载均衡导致失配。对压缩与变体(`Vary`)处理进行明确配置,避免错误复用。参考与验证MDN:ETag — https://developer.mozilla.org/docs/Web/HTTP/Headers/ETagMDN:If-None-Match — https://developer.mozilla.org/docs/Web/HTTP/Headers/If-None-Match

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部