PHP 能将数据入浏览器缓存吗?如果能求讲解!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 能将数据入浏览器缓存吗?如果能求讲解!相关的知识,希望对你有一定的参考价值。

PHP 能将数据写入浏览器缓存吗?如果能求讲解!

不知阁下需要的是怎样的缓存?纯客户端?还是怎样的,以下可供参考:
一:储存于客户端的信息,页面调用时无需从服务器解析直接使用(常见的即为Cookie,还有HTML5里的localStorage,Application Cache);
二:离线性质,即用户不在线时,也可以正常访问网页,所访问的数据即客户端储存的缓存(HTML5中的应用程序缓存,即Application Cache);
三:客户端与服务端共同缓存的,这种方法可使已经从数据库查询的数据、已通过程序计算得到的数据存于服务器,服务器解析时直接调用,无需再处理得到,大大减轻了服务器的压力(常见的即为session,HTML5中为sessionStorage);
四:纯服务端,同三,即将服务器已经处理好的数据暂存于服务器,需要时直接调用而无需再次处理以便提高效率和减轻服务器压力(服务器端的缓存机制非常多,网站开发者基本都会);
参考技术A cookie
数据量小,用于身份识别
Local Storage
可存储大量数据,具体可以百度搜索一下相关介绍及使用
调用限制比较严格,域名,路径限制

其它存储方式根据浏览器不同差异比较大本回答被提问者采纳
参考技术B 除了Cookie 还是这个Cookie. 参考技术C cookie 应该算是吧追问

除了cookie还有别的吗?

追答

。。。。。。。。。你随便输出到浏览器的东西 基本都被浏览器缓存起来了 除非设置header里的 Cache-Control

参考技术D 304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
如 果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。
因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

缓存技术简单讲解

缓存主要为了减少服务器数据库的压力
1.静态缓存
2.memecache redis缓存

静态缓存:
保存在磁盘上的静态文件,用PHP生成数据放入静态文件中

技术分享图片

技术分享图片

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 技术分享图片

 






以上是关于PHP 能将数据入浏览器缓存吗?如果能求讲解!的主要内容,如果未能解决你的问题,请参考以下文章

系统的讲解 - PHP 缓存技术

从原理到场景 系统讲解 PHP 缓存技术

能用JS或者前端的啥方法实现清除浏览器缓存吗

如何在HTTP headers设置有效日期?这个指的是在服务器上或者网页中加入的吗?怎么设置?求解

如何强制浏览器使用 php 刷新缓存?

php 面试必备:各种缓存技术详解