为什么有了 Last-Modified 还需要 Etag

Last-Modified

Last-Modified和If-Modified-Since是一对的。

当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Last-Modified标记着文件在服务器端最后被修改的时间。

浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-Modified-Since的标记,用来询问服务器该时间之后文件是否被修改过。

但是Last-Modified是http1.0的产物,有两个缺点:

  1. 只能精确到秒级别
  2. 内容完全没改变的资源文件,无法识别出来(只要修改时间变了,就算变动)。
    所有就有了ETag。

ETag

ETag解决了Last-Modified的缺点,http1.1的字段,优先级高于Last-Modified。

ETag有两种类型:

  1. 强ETag
    强ETag值,不论实体发生多么细微的变化都会改变其值。
    强ETag表示形式:“22FAA065-2664-4197-9C5E-C92EA03D0A16”。

  2. 弱ETag
    弱 ETag 值只用于提示资源是否相同。只有资源发生了根本改变产 生差异时才会改变 ETag 。这时,会在字段值最开始处附加 W/。
    弱ETag表现形式:W/“22FAA065-2664-4197-9C5E-C92EA03D0A16”。

ETag和If-None-Match是一对:

当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Etag,存放着服务器端生成的一个序列值。

浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-None-Match的标记,用来询问服务器该文件有没有被修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值