etags与普通浏览器提供的缓存有什么区别?

问题描述 投票:0回答:1

REST允许使用etags进行缓存。

类似地,浏览器支持缓存,除非设置了以下标头-> maxage,expires,cache-control:private

etags与上述缓存方法有什么区别?

rest http caching browser-cache etag
1个回答
0
投票

etags与普通浏览器提供的缓存有什么区别?

我想您会发现它们是完全不同的想法。

在HTTP中,缓存语义由RFC 7234: Caching定义。

[Entity tagsRFC 7232: Conditional Requests定义

实体标签是一个不透明的验证器,用于区分同一资源的多个表示形式,而不管这些多个表示形式是由于资源状态随时间而变化,内容协商导致多个表示形式同时有效还是两者兼而有之。

Validator语义用于支持前提条件。两种常见的用例:

在“有条件GET”方案中,客户端将发送验证器(通过If-None-Match标头),这些验证器标识本地已经可用的表示形式。在验证器与当前表示匹配的情况下,服务器可以将响应限制为仅发送刷新的元数据(标头),而不是重新发送资源的表示。

在“有条件的PUT”方案中,客户端将(通过If-Match标头)发送一个验证器,该验证器标识请求旨在应用于的资源版本。

客户端希望此前提条件是,如果表示数据发生任何更改,则该方法将无法应用。

考虑“乐观锁定”-我们试图通过确保自服务器最初告诉我们以来,资源没有任何其他更改来避免“丢失编辑问题”。

© www.soinside.com 2019 - 2024. All rights reserved.