Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http Etag:弱对强的例子_Http_Caching_Http Headers_Browser Cache_Etag - Fatal编程技术网

Http Etag:弱对强的例子

Http Etag:弱对强的例子,http,caching,http-headers,browser-cache,etag,Http,Caching,Http Headers,Browser Cache,Etag,我一直在阅读关于Etag的文章,我知道有两种生成Etag的方法,弱和强。弱ETag在计算上比强ETag更容易生成。我还了解到,对于大多数用例来说,弱ETag实际上已经足够了 从 弱验证器很容易生成,但对于 比较。强验证器非常适合进行比较,但也可以 很难有效地生成 另一个片段: 同一资源的两个表示形式的弱Etag值可能是 语义等效,但不完全相同 我发现很难理解一个资源在语义上相似但不是逐字节相同意味着什么?如果能看到一些例子,那就太好了 编辑:找到了一个示例,但我不明白: 弱验证:这两种资源表示在

我一直在阅读关于Etag的文章,我知道有两种生成Etag的方法,弱和强。弱ETag在计算上比强ETag更容易生成。我还了解到,对于大多数用例来说,弱ETag实际上已经足够了

弱验证器很容易生成,但对于 比较。强验证器非常适合进行比较,但也可以 很难有效地生成

另一个片段:

同一资源的两个表示形式的弱Etag值可能是 语义等效,但不完全相同

我发现很难理解一个资源在语义上相似但不是逐字节相同意味着什么?如果能看到一些例子,那就太好了

编辑:找到了一个示例,但我不明白:

弱验证:这两种资源表示在语义上是相同的 等效,例如,某些内容差异并不重要 从业务逻辑的角度来看,例如,当前日期显示在 页面对于更新它的整个资源可能并不重要


生成Etag时,您是否可以确定内容的更改对功能不重要(例如,字体大小的css属性更改),并以304作为响应?如果是,那么浏览器上的资源何时更新,我想只要Etag相同,浏览器就不会得到最新版本。在这种情况下,这可能意味着当发生重大更改并创建新的Etag时,css属性更改只会与重大更改一起发送到浏览器。

我的建议是查看规范。它只有几页长,可以回答你所有的问题

您要求提供示例,以下是规范中的一些示例:

  • 例如,天气报告的表示形式在 基于动态测量,每秒的内容可能会被分组 转换为一组等效表示(从源服务器的 透视图)使用相同的弱验证器,以便允许缓存 陈述在合理期限内有效

  • 表示的修改时间(如果仅使用 一秒钟的解析,如果可能的话,可能是一个弱验证器 用于在一秒钟内修改两次表示 并在这些修改之间检索

  • 如果源服务器为具有的表示发送相同的验证器 一种gzip内容编码,适用于没有 内容编码,那么验证器很弱

最后一个代表了弱ETag最常见的用途:服务器在gzip内容时将强ETag转换为弱ETag,比如说

本规范还解释了何时更改弱ETag:

无论何时,源服务器都应该更改弱实体标记 不可接受的陈述,以代替当前的 代表性

换句话说,由您决定一个资源的两个表示是否是可接受的替换。如果是,您可以通过为它们提供相同的弱ETag来提高缓存性能