分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

http缓存浅析及HttpCache使用方法 [ 2.0 版本 ]

发布时间:2023-09-06 02:18责任编辑:郭大石关键词:http缓存

1.学习理由:合理的利用http缓存在对网站性能提升有非常巨大的作用,而且十分经济实惠 2.http缓存浅析 3.如何使用HttpCache来实现http缓存

http缓存浅析 1.当客户端第一次访问网站的时候,浏览器是没有缓存的,所以所有的资源都是从服务器获取的(会将css,js,图片)等资源缓存到客户端的本地 2.当客户端第二次以后访问网站的时候,会先去先去检查本地有没有有效缓存, a.如果在客户端就可以确定是有效缓存的话,那么就不会去请求服务器(通过http header expires信息来确定) b.如果客户端无法确定是不是有效缓存的话,就会请求服务器验证,在服务器端验证有两种验证方式,etag/HTTP_IF_NONE_MATCH和lastmodified/HTTP_IF_MODIFIED_SINCE, 优先使用etag验证,etag不通过会使用lastmodified的,如果验证通过,会返回304(表示资源没有变化),304是没有body信息,所以传输数据量非常小,对服务器的压力特别小, 如果验证不通过,则会去请求资源,返回200,这个会带有Body,所以数据量会比较大,对web优化是没有效果的

3.如何使用http缓存协议优化web a.首先我们可以将一些永远不会变化的资源,在其action里面通过设置比较大的expires来是这个资源在很长的时间里面是有效的,设置方法如下 $response->getHeaders()->set(‘Expires‘, ‘Mon, 01 May 2017 08:31:23 GMT‘); b.其次,对于一些不常变化的网站资源,我们可以使用yii提供的HttpCache,来设置他的lastmodified或etag来优化网站,代码如下:

public function behaviors() { return [ [ ‘class‘ => ‘yii\filters\HttpCache‘, ‘only‘ => [‘index‘], ‘lastModified‘ => function ($action, $params) { $q = new \yii\db\Query(); return $q->from(‘post‘)->max(‘updated_at‘); }, ], ]; }

解释一下,这个代码的意思,在客户端访问,index这个action的时候,会在http的头部加上一个lastmodified的验证,这里用到了http缓存原理的第二条: 1.如果post表的最大的updated_at没有变化,那么返回客户端304,没有数据的 2.如果post表的最大的updated_at有变化,那么放回200,有数据的

http缓存浅析及HttpCache使用方法 [ 2.0 版本 ]

原文地址:https://www.cnblogs.com/weisliey/p/9813733.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved