0

我在这方面看到了很多其他问题,但由于 Node.js 是一种服务器端语言,“Etag 支持”似乎是指一个 nodejs 应用程序创建、发送和处理要返回给他们的客户端的代码。在我的情况下,当我将 Etag 值与If-None-Match标头匹配以发送回用于查看资源是否发生变化的其他请求。

此外,在这种情况下,正确的术语是什么。我是客户,我的移动应用程序用户是我的客户,所以他们是客户的客户吗?

我使用reqest,想知道是否有比设置局部etag变量更简单的方法,如果没有设置,则检查它是否已设置,然后使用一组没有空的标题'If-None-Match'和另一组带有它的标题,并在您在响应中抓取它时使用它像这样抓住

 function callback(error, response, body) {
        if (!error && response.statusCode == 200) {
          var info = body;
          var etag = headers.etag;
          returnEtag(etag)

然后必须在函数中抓取并返回它returnEtag()并在第二组标题中使用它,依此类推。

这变得一团糟,更不用说我必须通过我的整个应用程序执行此操作,以便etag以更简单/更容易的方式管理每个不同请求的每个请求。是否有任何模块支持开箱即用地处理这个问题?

文档说明我应该执行以下操作

所有响应都返回一个 HTTP Cache-Control 标头。它的内容表示可以使用多长时间的缓存响应来减少不必要的 API 请求。访问此 API 的客户端必须注意此信息。

除此之外,每个响应都会返回一个 HTTP ETag 标头。它的内容将用于 HTTP If-None-Match 标头中对同一资源的后续请求。如果缓存的信息仍然有效,API 将返回状态代码 304 Not Modified。访问此 API 的客户端必须使用此技术,也称为条件 GET。

我使用我自己的服务器来访问此 API,然后将该数据保存到可以在移动应用程序上访问我的用户的火力库(将应用程序与其他公司 api 的密钥远离移动应用程序用户)。

4

0 回答 0