网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

HTTP头部信息 | ETag

更新时间:2026年03月27日   作者:spoto   标签(Tag):

ETag或实体标签这是一种响应类型头信息,它充当验证器角色,帮助客户端发出条件性请求。通过触发相关请求头信息,它可以提高重新验证的效率,从而节省网络带宽资源。
ETag该标识符是为了识别特定的浏览器资源而生成的。每当用户再次访问同一资源时,浏览器会发送一个小型的令牌,以确认该资源的版本是否已经在浏览器的HTTP缓存中,是否与Web服务器上的当前版本一致。如果资源版本一致,那么Web服务器就不需要发送完整的响应了。这样就能加快处理速度,同时节省数据资源。
语法:

ETag : "etag-value"   (strong validation)ETag : W/"etag-value"  (weak validation)   

指令/指示:这个头部字段可以接受两个指令,具体说明如下:

  • “etag-value”:它是一串用双引号括起来的ASCII字符。每当浏览器中的资源发生变化时,就会生成一个新的值,而且每个值的生成都是唯一的。目前并没有关于这些值生成顺序的HTTP规范。因此,值的生成方式完全取决于Web服务器本身。
  • W/:这象征着一种“弱验证”方式。与那些经过严格验证的标签相比,这种标签其实很容易生成,但它们在进行比较时存在差异。在弱验证中,如果两个标签的字符一一对应,那么就可以认为这两个标签是等效的,而无需考虑其中一个标签是否被标记为“弱标签”。而在强验证中,只有当两个标签的字符完全对应,且两个标签本身都不是“弱标签”时,才能认为它们是等效的。

ETag在请求头中的使用方式:

  • If-Match 标题:这种机制主要用于当多个代理程序可能同时处理同一资源时的情况。这样可以避免在使用诸如POST、PUT、DELETE等操作时出现意外覆盖现象。 在这里,某个特定资源的ETag头值被包含在If-Match头中,以此来检查在执行该操作的过程中,该资源是否发生了任何变化。 如果找不到匹配的条目,就会显示“412 Precondition Failed”错误。 如果当前的表示与之前的请求不完全或没有匹配,那么也可以利用它来取消该请求。
ETag : "21e92a357b3434b5aa"If-Match : "21e92a357b3434b5aa"
  • 如果为空/无匹配,则显示标题:当用户之前访问过的特定网站的已存储响应过期时,就会使用这个头信息。此时,服务器会为当前版本生成If-None-Match值,并将其与用户浏览器中存储的ETag值进行比较。如果这两个值相匹配,则会显示304“未修改”的状态码。在这种情况下,在比较实体标签时,必须使用弱比较方式。
If-None-Match : "21e92a357b3434b5aa"

示例:

ETag: "21e92a357b3434b5aa"  (strong validation)ETag: W/"21e92a457b3434b5aa"  (weak validation)

支持的浏览器:这些浏览器得到了支持。HTTP头部 | ETag标题如下所示:

  • Microsoft Edge
  • 谷歌浏览器
  • Mozilla Firefox
  • Safari
  • 歌剧
  • Internet Explorer
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料