Express.js 中的缓存技巧:使用 Etags 和 Last-Modified

阅读时长 4 分钟读完

缓存是一项用于提高网站性能的技术。它是将数据存储在本地存储器中,从而避免在每次请求时都要重新获取数据。在前端开发中,使用缓存可以大大减少数据传输的时间,提高网站的加载速度和响应时间。在使用 Express.js 进行后端开发时,缓存也是非常重要的一项技术。本文将重点介绍如何在 Express.js 中使用 Etags 和 Last-Modified 来实现缓存。

Etags 与 Last-Modified 概述

ETag 是一个由服务器生成的标识,用来标识一个资源的版本信息。它是一个字符串,可以通过浏览器的 HTTP 头信息来传递给服务器。当服务器接收到一个请求时,它会将服务器上的资源与传递过来的 ETag 值进行比较,如果 ETag 值相同,则服务器返回 HTTP 304 Not Modified 响应,从而让浏览器使用缓存中的数据。

Last-Modified 是一个时间戳,用来标识一个资源的最后修改日期。它也可以通过浏览器的 HTTP 头信息来传递给服务器。当服务器接收到一个请求时,它会将服务器上的资源的最后修改日期与传递过来的 Last-Modified 值进行比较,如果它们相同,则服务器返回 HTTP 304 Not Modified 响应。

Etags 的使用

为了在 Express.js 中使用 Etags,我们需要使用 etag 中间件。这是一个 Express.js 的内置中间件,可以用于自动生成 Etag 值,并将其添加到响应的 HTTP 头信息中。

-- -------------------- ---- -------
----- ------- - -------------------
----- ---- - ---------------- -- -- ---- ---

----- --- - ----------

------------ -------- ----- ---- -
  ----- ---- - ------ -------
  ----- --------- - ----------- -- -- ---- -
  --------------- ----------- -- --------- ----
  ---------------
---

---------------- -------- -- -
  ---------------- -- ------- -- ---- -------
---

在以上代码中,我们通过 etag 中间件生成了 Etag 值,并将其添加到了响应头信息中。当浏览器向服务器请求时,服务器会将客户端传递过来的 Etag 值与服务器上的 Etag 值进行比较。如果它们相同,则服务器返回 HTTP 304 Not Modified 响应,并告诉浏览器直接从缓存中获取数据。

Last-Modified 的使用

在 Express.js 中使用 Last-Modified 也非常简单。我们只需要在响应头信息中添加 Last-Modified 值即可。下面是一个示例代码:

-- -------------------- ---- -------
----- ------- - -------------------
----- ------ - ------------------ -- -- ------ ---

----- --- - ----------

------------ -------- ----- ---- -
  ----- ---- - ------ -------
  ----- ------------ - ----------------------- -- -------
  ------------------------ -------------- -- --------- -------------
  ---------------
---

---------------- -------- -- -
  ---------------- -- ------- -- ---- -------
---

在以上代码中,我们使用了 moment 时间库来生成当前时间戳,并将其添加到响应头信息的 Last-Modified 字段中。当浏览器向服务器请求时,服务器会将客户端传递过来的 Last-Modified 值与服务器上的 Last-Modified 值进行比较。如果它们相同,则服务器返回 HTTP 304 Not Modified 响应,并告诉浏览器直接从缓存中获取数据。

结论

在本文中,我们介绍了在 Express.js 中使用 Etags 和 Last-Modified 来实现缓存的方法。这些技术可以大大提高网站的性能,减少数据的传输时间,提高网站的加载速度和响应时间。如果您正在开发一个需要高性能的 Express.js 应用程序,那么使用这些技术是非常重要的。希望本文对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671aef4c9babaf620fa696fc

纠错
反馈