身思乐,人事爱,稳恒不言败!

NodeJS/express:缓存和304状态码?(接口返回的状态码是304)

app.disable('etag');

ETag或者实体标签是缓存机制的一种。它运行的方式就好比为一个给定的URL赋予了一个独特的标记。换句话说,如果特定URL中的内容不发生比那话,这个etag就会保持不变,于是浏览器就会使用缓存。
如果你不知道etag是什么或者如何使用它,最好的返回发就是不要去设置Express.js中的etag选项,这意味着默认的ETag将会被开启。否则,你可以禁用它:

// ... Express.js 应用初始化
app.disable('etag'); 
// ... Express.js 应用路由

上面的代码将会在去除响应头中的ETag字段。

默认情况下,Express.js会使用”弱”ETag。其他的可选值为:

  • true: 弱ETag。例如,app.enabled(’etag’),如上图所示
  • false: 禁用ETag。例如,app。disable(’etag’)
  • weak: 弱ETag。例如,app.set(’etag’,’weak’)
  • strong: 强stag。例如,app.set(’stag’,’strong’)

一个典型的强ETag会保证响应的每个字节都相同,然而弱ETag只保证响应在语义上相同。

参考:
https://cloud.tencent.com/developer/ask/34310

http://www.html-js.com/article/2300