解析 If-Modified-Since 标头 (node.js)

Posted

技术标签:

【中文标题】解析 If-Modified-Since 标头 (node.js)【英文标题】:Parse If-Modified-Since Header (node.js) 【发布时间】:2016-12-10 22:18:45 【问题描述】:

我正在尝试在我正在编写的服务器托管程序中实现发送 304 标头以提高性能,但我不知道如何解析 If-Modified-Since 标头的日期。我还想知道如何确定 If-Modified-Since 日期是否比我代码中的另一个日期更早/更新。

【问题讨论】:

【参考方案1】:

以防万一有人遇到......

要从"Last-Modified" 解析日期,您可以使用Date 构造函数,该构造函数采用日期字符串。 您还可以使用Date.parse,它返回自纪元以来的毫秒数(对于无效日期,它返回NaN)。 要以适合"Last-Modified""If-Modified-Since" 标头的格式打印回日期,您可以使用Date 的toUTCString() 方法。

var date = new Date("Wed, 17 May 2017 04:44:36 GMT");
var ms = Date.parse("Wed, 17 May 2017 04:44:36 GMT");
console.log('parsed date: ', date);
console.log('parsed date ms: ', ms);
console.log('If-Modified-Since: '+date.toUTCString());

【讨论】:

【参考方案2】:

要解析日期,请使用new Date(datestring)Date.parse(datestring)。要查看某个日期是否比另一个日期新或旧,请使用大于 (>) 和小于 (

【讨论】:

以上是关于解析 If-Modified-Since 标头 (node.js)的主要内容,如果未能解决你的问题,请参考以下文章

在“If-Modified-Since”HTTP 标头中使用客户端生成的时间

在请求中发送“if-modified-since”标头

了解 If-Modified-Since HTTP 标头

Cloudfront如何每次都避免If-Modified-Since标头请求

基于 If-Modified-Since 标头修改 REST API 表示是不是有效?

Safari 不发送“If-Modified-Since”和“If-None-Match”标头