php 数据缓存一种是对 页面结果的缓存 应用服务器级别的 软件如squid
一种是 内存级别的 一般是对 php 频繁调用的并且如果每次查询会消耗大量资源的数据 软件有 memcached
一种是 对php 程序进行优化编码的缓存 如 apache 里面的apc, eAccelerator, XCache 等
还有一种就是文件缓存 这种一般是 用php自己实现的 没什么可说的.
看你的具体需求是怎样的了..有疑问请联系1465663870
浏览器缓存和服务器缓存一、浏览器缓存
浏览器缓存即http缓存;浏览器缓存根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是 强制缓存 和 协商缓存。
浏览器第一次请求资源的时候服务器会告诉客户端是否应该缓存资源,根据响应报文中HTTP头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中 。如下图:
1.强制缓存 :浏览器会对缓存进行查找,并根据一定的规则确定是否使用缓存 。
强制缓存的缓存规则?
HTTP/1.0 Expires 这个字段是绝对时间,比如2018年6月30日12:30 , 然后在这个时间点之前的请求都会使用浏览器缓存 , 除非清除了缓存 。
这个字段的缺点就是只会同步客户端的时间,这就有可能修改客户端时间导致缓存失效 。
HTTP/1.1 cache-Control这个是1.1的时候替换Expires的,它会有几种取值:
public :所有内容都将被缓存(客户端和代理服务器都可缓存)
private :所有内容只有客户端可以缓存,Cache-Control的默认取值
no-cache :客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定
no-store :所有内容都不会被缓存 , 即不使用强制缓存,也不使用协商缓存
max-age=xxx (xxx is numeric) :缓存内容将在xxx秒后失效
比如max-age=500,则在500秒内再次请求会直接只用缓存 。
优先性:cache-ControlExpires
如果同时存在,cache-Control会覆盖Expires 。
这个字段的缺点就是:
如果资源更新的速度是秒以下单位,那么该缓存是不能被使用的 , 因为它的时间单位最低是秒 。
如果文件是通过服务器动态生成的 , 那么该方法的更新时间永远是生成的时间,尽管文件可能没有变化,所以起不到缓存的作用 。
上图中浏览器缓存中存在该资源的缓存结果,并且没有失效,就会直接使用缓存的内容 。
上图中浏览器缓存中没有该资源的缓存结果和标识,就会直接向服务器发起HTTP请求 。
2.协商缓存: 浏览器的强制缓存失效后(时间过期),浏览器携带缓存标识请求服务器 , 由服务器决定是否使用缓存 。
服务器决定的规则?
控制协商缓存的字段有 Last-Modified / If-Modified-Since 和 Etag / If-None-Match 。
①Last-Modified 是服务器返回给浏览器的本资源的最后修改时间 。
当下次再次请求的时候,浏览器会在请求头中带 If-Modified-Since ,即上次请求下来的 Last-Modified 的值,
然后服务器会用这个值和该资源最后修改的时间比较,如果最后修改时间大于这个值 , 则会重新请求该资源,返回状态码200 。
如果这个值和最后修改时间相等,则会返回304 , 告诉浏览器继续使用缓存 。
② Etag 是服务器返回的一个hash值 。
当下次再次请求的时候,浏览器会在请求头中带 If-None-Match ,即上次请求下来的 Etag 值,
然后服务器会用这个值和该资源在服务器的 Etag 值比较,如果一致则会返回304,继续使用缓存;如果不一致,则会重新请求,返回200 。
二、服务器缓存
推荐阅读
- centos什么查看cpu使用,centos 看cpu
- chatgpt在哪里用,chatmsg如何打开
- 动作的射击游戏,动作射击游戏单机
- pg自动运行函数,iphone运行自动化操作时出现问题
- go语言有哪几个框架 go语言gin框架
- 关于pg数据库查询结果美化的信息
- 女性恋爱养成游戏手游,女性恋爱养成游戏手游推荐
- 直播字幕遮挡工具在哪,直播中的字幕可以消除吗?
- vb.net窗体设计原则 vb中窗体是什么意思