网站缓存优化

添加时间:2021-08-05 08:00:00

我的VPS内存相对较小,我自己制作了一个图像系统。我博客的图片都是剪下来的,所以剪下来的照片会占用很多的记忆

为了降低VPS的压力,只能在前端进行缓存优化。HTTP确实是一个很棒的协议。让我们通过httpheader关键字进行网站优化

1) 修改时间:上次修改时间和如果修改开始时间

last modified关键字用于设置文档的***更新日期,如下面的代码所示

如果浏览器发现responseheader上次修改过,它将缓存资源。在对同一资源的下一个请求中,if modified since将被添加到requestheader中,并且该值等于上次修改的值,如下所示

然后在PHP端,在比较资源和资源的修改时间时,可以使用$SERVER['HTTP_IF_umodified_,如果不改变,可以直接返回304notfound

2) 过期时间:过期和缓存控制

虽然上面的方法将选择缓存进行呈现,但它仍然会再次发送HTTP请求。虽然它不响应实体,但仍会造成资源消耗(或穷人造成的灾难)。expires的设计思想与上述方法不同

当服务器希望客户机缓存资源时,为了避免客户机每次都问服务器:我的一个缓存是否仍然可用?因此,服务器选择放弃并直接告诉客户机缓存已存在多长时间。在这段时间里,你可以直接计时。别再问我了。服务器告诉客户机浏览器可以缓存多长时间,而不是询问服务器,如下面的代码所示

我已经缓存了10年了。当客户端浏览器找到标题时,它将缓存资源。此时,浏览器不会询问服务器。

然而,过期也有缺点。例如,如果服务器缓存客户端1小时,客户端时间比服务器快2小时,则缓存无效。现在是时候了

将显示“缓存控制”属性。如果客户端浏览器发现头中有一个修改过的属性,它将通过添加本地客户端时间和修改后的属性值来生成缓存时间

我们应该有个问题。如果这两个属性都是expired和cache-control,那么谁是主要属性?