php禁止网页抓取(禁用浏览器缓存的方法和方法缓存详解!! )
优采云 发布时间: 2021-11-07 22:00php禁止网页抓取(禁用浏览器缓存的方法和方法缓存详解!!
)
一般情况下,我们想查看互联网上的网页。当您第一次访问该网页时,系统会首先将该网页下载到您本地计算机上的一个临时文件夹中进行缓存。一段时间后,当您第二次或第三次访问该网页时,浏览器会直接从您本地计算机的临时文件夹中读取该文件。这样做的好处是避免每次都重新下载,占用大量资金。时间和网络资源,不得不说页面缓存加快了网页的显示速度。当然,它也有它的缺点。例如,当服务器上的网页已经更新,而本地显示的网页还没有更新时,无法及时显示更新。内容之后,在某些情况下,我们需要禁止浏览器缓存,
一、对于静态页面(由元标记设置):
或者通过pragma no-cache设置,pragma出现在http-equiv属性中,content属性的no-cache值用来表示是否缓存网页(为了提高速度,有些浏览器会缓存浏览器浏览的页面,通过下面的定义,浏览器一般不缓存页面,浏览器不能离线浏览)。
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 消息的值,则客户端可以在超时时间内收到超过指定值的响应消息。
注意:HTTP1.1中增加了Cache-Control头,相比其他方法可以实现更细致的缓存控制。
header('Cache-Control: max-age=3600*24');//缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的
二、php 禁止浏览器使用缓存页面
可以通过PHP的header()函数发送特定的缓存控制原创HTTP头来实现。具体代码如下: