HTTP Response Header: Last-Modified(最后修改)

HTTP响应头:Last-Modified(最后修改)

HTTP响应头:Last-Modified(最后修改)

在Web开发中,HTTP响应头是服务器发送给浏览器的一部分信息,用于告知浏览器有关请求资源的一些元数据。其中一个常见的响应头是Last-Modified(最后修改),它指示了服务器上资源的最后修改时间。

什么是Last-Modified响应头?

HTTP响应头中的Last-Modified字段是一个日期时间值,表示了服务器上资源的最后修改时间。当浏览器请求一个资源时,服务器会检查该资源的最后修改时间,并将其作为Last-Modified响应头的值返回给浏览器。

浏览器在接收到资源的同时,会将Last-Modified响应头保存在缓存中。下次请求同一资源时,浏览器会将该值作为If-Modified-Since请求头的值发送给服务器,以便服务器判断资源是否已经发生了修改。

如何使用Last-Modified响应头?

使用Last-Modified响应头可以有效地减少网络流量和服务器负载。当浏览器发送带有If-Modified-Since请求头的请求时,服务器可以通过比较资源的最后修改时间和If-Modified-Since的值来判断资源是否需要重新发送。

如果资源的最后修改时间早于或等于If-Modified-Since的值,服务器会返回一个304 Not Modified响应,告诉浏览器可以使用缓存的版本。这样可以节省带宽和加快页面加载速度。

如果资源的最后修改时间晚于If-Modified-Since的值,服务器会返回资源的新版本,并更新浏览器缓存中的Last-Modified值。

示例代码

以下是一个使用Last-Modified响应头的示例代码:


const http = require('http');
const fs = require('fs');
const path = require('path');

http.createServer((req, res) => {
  const filePath = path.join(__dirname, 'public', req.url);
  fs.stat(filePath, (err, stats) => {
    if (err) {
      res.statusCode = 404;
      res.end('Not Found');
      return;
    }

    const lastModified = stats.mtime.toUTCString();
    res.setHeader('Last-Modified', lastModified);

    if (req.headers['if-modified-since'] === lastModified) {
      res.statusCode = 304;
      res.end();
      return;
    }

    fs.createReadStream(filePath).pipe(res);
  });
}).listen(3000, () => {
  console.log('Server is running on port 3000');
});

总结

通过使用HTTP响应头中的Last-Modified字段,服务器可以告知浏览器资源的最后修改时间。浏览器可以利用这个信息来减少网络流量和服务器负载,提高页面加载速度。在Web开发中,合理使用Last-Modified响应头可以带来很多好处。

如果您正在寻找香港服务器,晴川云是您的首选。我们提供高性能的香港服务器,可满足您的各种需求。您还可以通过我们的官网了解更多关于香港服务器的信息:https://www.qcidc.com

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容