Http 如何在Angular 6中使用etag实现缓存?

Http 如何在Angular 6中使用etag实现缓存?,http,caching,https,angular6,etag,Http,Caching,Https,Angular6,Etag,在Angular 6中有没有关于如何使用etag头实现HTTP缓存的示例代码?我读了那本书,但对我来说不太清楚。我想缓存资源(获取/发布请求结果)。API示例 我希望能够通过HttpClient.get()从不同的位置调用相同的API,例如/crooks/3。如果缓存未过期,则我希望获取本地缓存,而不是再次从远程数据库获取,除非get参数或post主体已更改,例如/4 angular http etag每周下载的包大约有100个,我还没有找到在angular 2+中使用该包的示例 (我读到的另一

在Angular 6中有没有关于如何使用etag头实现HTTP缓存的示例代码?我读了那本书,但对我来说不太清楚。我想缓存资源(获取/发布请求结果)。API示例

我希望能够通过HttpClient.get()从不同的位置调用相同的API,例如/crooks/3。如果缓存未过期,则我希望获取本地缓存,而不是再次从远程数据库获取,除非get参数或post主体已更改,例如/4

angular http etag每周下载的包大约有100个,我还没有找到在angular 2+中使用该包的示例

(我读到的另一种选择是通过RxJS sharedReply进行缓存)


谢谢。

Http缓存由服务器和浏览器处理。您的客户机代码不必做任何事情来利用它。还要注意,
ETag
头不会导致缓存任何内容,它用于重新验证已缓存的数据。如果我只想从API第一次调用中获取缓存结果,并且可以从不同的页面调用API,该怎么办?缓存是如何工作的?它是按资源计算的吗。对同一API的调用,还是每页调用?我可以假设必须在服务器端设置一些配置吗?我们决定在本地实现RxJS缓存,而不是使用etag(在客户端不产生任何HTTP调用)。这种策略之所以有效,是因为我们只缓存常量,例如国家名称和id,这些常量很少更改。