Caching 网站缓存在今天仍然相关吗?

Caching 网站缓存在今天仍然相关吗?,caching,browser-cache,Caching,Browser Cache,在2000年的“文件”中,他们提出了以下规则: “缓存网页(如果有可能) 在其生命周期内重新引用。” 这在今天仍然适用吗?带宽既便宜又快捷,网站往往是动态的,所以缓存命中率较低(我想是的,是这样吗?)。缓存网站仍然有意义吗?如果是这样,缓存哪些数据?我可以想象照片或文章,但我的个人推特网站呢?即使是文章,也可能有我想知道的突发新闻,因此缓存中数据的生命周期应该很短 这一经验法则是否仍然相关?它在实践中是如何使用的?缓存在今天也非常重要。因此,您的站点反应更快,您的服务器可以处理更多的客户端 基本

在2000年的“文件”中,他们提出了以下规则:

“缓存网页(如果有可能) 在其生命周期内重新引用。”

这在今天仍然适用吗?带宽既便宜又快捷,网站往往是动态的,所以缓存命中率较低(我想是的,是这样吗?)。缓存网站仍然有意义吗?如果是这样,缓存哪些数据?我可以想象照片或文章,但我的个人推特网站呢?即使是文章,也可能有我想知道的突发新闻,因此缓存中数据的生命周期应该很短


这一经验法则是否仍然相关?它在实践中是如何使用的?

缓存在今天也非常重要。因此,您的站点反应更快,您的服务器可以处理更多的客户端

基本上,你应该让客户端缓存所有静态的东西,比如css、js和图像。如果需要重新加载文件,可以添加新的查询字符串

IMHO是使用过期日期的最大技巧。在文件过期之前,客户端不会请求该文件。etag也非常有助于检测动态内容的变化


您还应该记住,与DSL和co相比,移动网络的速度非常慢。

缓存在今天也非常重要。因此,您的站点反应更快,您的服务器可以处理更多的客户端

基本上,你应该让客户端缓存所有静态的东西,比如css、js和图像。如果需要重新加载文件,可以添加新的查询字符串

IMHO是使用过期日期的最大技巧。在文件过期之前,客户端不会请求该文件。etag也非常有助于检测动态内容的变化


您还应该记住,与DSL和co相比,移动网络的速度非常慢。

是的,这很重要……特别是因为它提供了一种从最近宕机的网站检索信息的方法。

是的,它很重要……特别是因为它提供了一种从最近宕机的网站检索信息的方法向下

缓存与静态数据(如图像、CSS样式表、Javascript代码文件等)相关,因为它允许页面在重复点击和子页面时更快地加载。也适用于静态HTML页面,但正如您所注意到的,许多页面现在是动态的,它们通过HTTP头声明不应缓存这些页面。

缓存与静态数据(如图像、CSS样式表、Javascript代码文件等)相关,因为它允许页面在重复点击和子页面时更快地加载。也适用于静态HTML页面,但正如您所注意到的,许多页面现在是动态的,它们通过HTTP头声明不应缓存这些页面。

正如我们社区的其他成员所说,缓存是非常重要的工具,当然,如果您想减少服务器负载和延迟),我只想与您分享我在过去2-3周中必须学习的两项技术:

第一件事:您可以使用
返回上次修改的
http头,以响应自
以来修改的请求(以及
ETag/如果没有匹配的
,唯一的区别是,当上次修改表示日期时,ETag表示一些散列值)。如果自
和上次修改
日期以来进行了修改,则只需比较
,如果页面、图像等过时,则返回
200 OK
状态代码。如果图像未被修改,则只返回
304未修改
状态(图像从浏览器缓存中提供)。
在这种情况下,您应该在客户端(浏览器)上缓存图像

如果希望减少例如数据库查询的数量,也可以将它们缓存在服务器上。或者您可以同时使用服务器和客户端

第二件事:过去两周,我一直在努力解决这个问题)
我将
Expires
响应头设置为永恒(例如1年),并在客户端上缓存图像。如果图像已更改,我将构建新的Url(其中包含哈希图像的“上次写入日期”)

我创建了一个windows服务,用于监视图像文件夹,如果图像已更改,它会将上次修改的日期写入数据库。然后我将此图像的上次修改日期添加到Url

这种方法的好处是,只有当映像被更改时,服务器才会被命中

例如,在第一种描述的方法中,浏览器必须向服务器发送请求,以验证图像是否新鲜,然后才能从自己的缓存中获取图像

第三件事:不要单独使用
Expires
http头(不实现
Last Modified
Etag
),因为如果缓存,例如,客户端上的图像,浏览器将从缓存中获取该图像,除非时间到期。因此,如果图像已被修改,用户将无法看到它,除非时间到期

希望我在缓存方面的一点经验能对您有所帮助:)


p.S.缓存所有可能的内容

正如我们社区的其他成员所说,缓存是一个非常重要的工具,当然,如果您想减少服务器负载和延迟),我只想与大家分享我在过去2-3周中必须学习的两项技术:

第一件事:您可以使用
返回上次修改的
http头,以响应自
以来修改的请求(以及
ETag/如果没有匹配的
,唯一的区别是,当上次修改表示日期时,ETag表示一些散列值)。如果自
和上次修改
日期以来进行了修改,则只需比较
,如果页面、图像等过时,则返回
200 OK
状态代码。如果图像未被修改,则只返回
304未修改
状态(图像已送达)