{site_name}

{site_name}

🌜 搜索

HTTP中的ETag是一种为Web资源分配的标识符,用于帮助判断资源是否已经被修改

前端 𝄐 0
HTTP中的ETag是一种为Web资源分配的标识符,用于帮助判断资源是否已经被修改。当客户端请求某个资源时,服务器可以在响应中包含一个ETag头来标识该资源。客户端在发送下一次请求时,可以将上一次响应中的ETag值作为If-None-Match头一起发送给服务器,如果服务器发现客户端发送过来的ETag与当前资源的ETag匹配,则返回304 Not Modified响应,告诉客户端可以直接使用缓存的版本。

例如,当一个浏览器第一次请求一个图片时,服务器可以在响应头中包含ETag头:

HTTP/1.1 200 OK
ETag: "abcdef"
Content-Type: image/jpeg
Content-Length: xxxx


当浏览器再次请求这个图片时,它会在请求头中包含If-None-Match头:

GET /path/to/image HTTP/1.1
If-None-Match: "abcdef"


如果服务器检查发现ETag值与当前资源相同,则返回如下响应:

HTTP/1.1 304 Not Modified
ETag: "abcdef"


这样,浏览器就可以直接从缓存中加载图片,而不必重新下载。