位置: 编程技术 - 正文

Apache环境下PHP利用HTTP缓存协议原理解析及应用分析(apache运行php)

编辑:rootadmin
对于静态页面还有Etag。 一、先来看第一种情况:apache 静态页面 apache发送给客户端的静态页面一般包含Last-Modified和Etag,这两个标签的值来自静态文件的修改时间和inode。 下面是截取得apache返回客户端的头 XML/HTML代码 搜索引擎之所以喜欢静态文件是因为有这两个标识,可以判断文件是否更新过 二、PHP等动态页面 由于php是动态生成的,它的内容是不能根据php程序的时间来确定最后修改日期,所以默认php返回客户端的时候补包含任何缓存控制,要想利用好缓存就必须了解缓存机制,和理减少b,s的交互,缩减带宽流量,减轻服务器负担...好处多多。 三、缓存控制的具体含义 先解释一下本人经过测试理解的这几个标签的含义 Cache-Control:指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。 各个消息中的指令含义如下: Public指示响应可被任何缓存区缓存。 Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache指示请求或响应消息不能缓存 no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。 php用法: 在输出之前用header(),(如果使用ob_start()可以将header放在程序任意地方) PHP代码 max-age=8表示最大生存期8秒,超过8秒浏览器必须去服务器重新读取,这个时间是以用户的读取页面开始计时的,而Expires是绝对时间。 Expires:缓存过期的绝对时间,如果过了它指定的那个时间点,浏览器就不认缓存了,要去服务器重新请求一份最新的。 Last-Modified:文档的最后修改时间,它的妙用就是:1 如果是静态文件,客户端会发上来它缓存里的时间,apache会来比对,如果发现没有修改就直接返回一个头,状态码是,字节数非常少,(高级版本还会增加比较Etag来确定文件是否变化) 2 php动态文件: 客户端发上比对时间,php会判断是否修改,如果修改时间相同,就只会返回字节,至于为什么返回不得而知,如果你的php生成的文件非常大,它也只返回,所以比较省带宽,客户端会根据服务器端发过来的修改时间自动从缓存文件里显示。 注:如果没有Last-Modified头,Cache-Control和Expires也是可以起作用的,但每次请求要返回真实的文件字节数,而不是 四、HOW ? 静态页面不用去管它了,如果想更好的控制静态页面的缓存,apache有几个模块可以很好的控制,这里不讨论 php页面: 这里分两种: 1、不经常改动的页面,类似新闻发布,这类页面的特点:第一次发布之后会有几次改动,随着时间推移基本不会再修改。控制策略应该是:1第一次发布之发送Last-Modified,max-age设定1天,修改过之后更新Last-Modified,max-age时间随着修改次数正常。这样似乎比较繁琐,还要记录修改次数,也可以预计一下下次可能的修改时间用Expires指定到大概时间过期 PHP代码 2 经常改动的页面 类似bbs,论坛程序,这种页面更新速度比较快,缓存的主要作用是防止用户频繁刷新列表,导致服务器数据库负担,既要保证更新的及时性,也要保证缓存能被利用 这里一般用Cache-Control来控制,根据论坛的发帖的频率灵活控制max-age。 PHP代码 五 额外 1 刷新,转到,强制刷新的区别 浏览器上有刷新和转到按键,有的浏览器支持用ctrl+F5强制刷新页面,它们的区别是什么? 转到:用户点击链接就是转到,它完全使用缓存机制,如果有Last-Modified那么不会和服务器通讯,用抓包工具可以查看到发送字节是0byte,如果缓存过期,那么它会执行F5刷新的动作。 刷新(F5):这种刷新也是根据缓存是否有Last-Modified来决定,如果有会转入或(php),如果没有最后更新时间那么去服务器读取,返回真实文档大小 强制刷新:完全抛弃缓存机制,去服务器读取最新文档,向服务器发送的header如下 XML/HTML代码 2 调试工具 查看浏览器和服务器交互比较好的工具是httpwatch pro,现在的版本4.1,支持ie7 还有别的代理抓包工具可以分析,http debugging。没用过,还有tcp抓包工具,自带的network。另外还有tcp抓包工具,自带的network monitor不过不是专门针对http的比较难用。

推荐整理分享Apache环境下PHP利用HTTP缓存协议原理解析及应用分析(apache运行php),希望有所帮助,仅作参考,欢迎阅读内容。

Apache环境下PHP利用HTTP缓存协议原理解析及应用分析(apache运行php)

文章相关热门搜索词:apache支持php,apache和php环境搭建,apache+php,php中apache的配置,apache+php,apache2 php,apache2 php,apache+php,内容如对您有帮助,希望把文章链接给更多的朋友!

php 魔术函数使用说明 什么是魔术函数?对于__开头的函数就命名为魔术函数,此类函数都在特定的条件下触发的.比如:__set()__get()等在设置或取不存在的属性时候触发.有那些魔

PHP 学习路线与时间表 本文讨论的重点在于PHP学习及开发的持久性与外延性.当许多人把自己三个月学会PHP当作一种资本到处炫耀时.当这些人炫耀过后又转投其它语言时.我必

用Zend Encode编写开发PHP程序 ZendEncode的工作原理使用PHP的人都知道,它是一个脚本编程工具,用它写的程序,必须以源码的形式放置在Web服务器上,所以我们无法保护自己的源代码

标签: apache运行php

本文链接地址:https://www.jiuchutong.com/biancheng/278222.html 转载请保留说明!

上一篇:一步一步学习PHP(6) 面向对象(php自学)

下一篇:php 魔术函数使用说明(php魔术方法的讲解与使用)

  • 员工离职再入职个税人员信息该如何录入?
  • 企业之间拆借资金是什么意思
  • 开票人和复核人收款人能是一个人吗
  • 注册登记费用属于什么科目
  • 企业如何提供准确的会计信息
  • 计提利息收入分录怎么写
  • 房屋合同印花税税率属于个人交的吗
  • 医院纯收入
  • 对公走账是什么意思
  • 工作过失扣工资合法吗
  • 公司代收生育津贴怎么做账
  • 对方承担税差该如何入账?
  • 公司给客户退款会计分录
  • 借方增加的科目记忆口诀
  • 增值税普通发票税率
  • 电梯保养维护费用
  • 已开专票在哪里查询
  • 支付职工补贴计入什么科目
  • 损益表和利润表的关系
  • 年度账套怎么结转下一年
  • 总杠杆系数的计算公司
  • 结算会计和往来账的区别
  • 存货的入账价值怎么计算
  • 年末提取盈余公积的会计分录怎么写
  • linux命令执行成功后会返回什么
  • 新版edge浏览器兼容ie
  • 长期债权投资收回的利息 现金流量表
  • 代缴社保怎么做账
  • 农产品进项转出的规定
  • 电脑开机时出现用户账户控制提示
  • 股权无偿赠与协议书范本
  • 汇算清缴审计报告收费标准
  • 预提费用的对应科目
  • msmpeng.exe 是什么
  • 缅因州达马里斯科塔地区的佩马基德灯塔 (© Tom Whitney/Adobe Stock)
  • php自定义字段
  • 最早的笔记本是512m内存
  • 职工教育经费可以有余额吗?
  • 代扣代缴增值税账务处理
  • webpack devserver contentbase
  • init 4命令
  • 劳务费个税扣税
  • 准予从销项税额中扣除的有哪些
  • mysql使用工具
  • 制造费用怎么登账
  • 企业支付的费用化的一般借款利息支出属于什么
  • 扇贝的储存方式
  • 复利现值系数表系数表
  • 运输费用增值税税率9%
  • 融资租赁财产保全金额是多少
  • 单位组织提供员工服务
  • 业务招待费礼品要扣个税吗
  • 电子缴税付款凭证是什么结算方式
  • 普票冲红需要收回原来的发票吗
  • 员工社保,个税怎么计算
  • mysql安装配置教程5.7.26
  • 自动化生产线模型
  • windows server2014 安装 Mysql Applying Security出错的完美解决方法
  • win10自带邮件怎么登录foxmail账号
  • 使用组策略可控制什么
  • won10安装
  • CentOS(x86_64)下PHP安装memcache扩展问题解决方法分享
  • 苹果电脑打不开txt
  • gacrunner.exe是什么
  • win8计算机管理员权限
  • windows7 读不了u盘怎么解决
  • win7系统玩游戏卡顿怎么办
  • win8如何打开任务管理器
  • linux图形界面与命令行
  • Windows Server 8 ADDS轻松几步搞定密码个性化设置
  • prize draw是什么意思
  • xp系统explorer停止工作
  • 用javascript
  • Linuxshell脚本实现自动化软件部署内容
  • django pypy
  • js如何使用
  • android network
  • 在文件中偏移量为
  • 谷歌的全球化发展战略
  • 深圳坪山税务局电话人工客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设