首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在客户端浏览器中缓存大的PHP文件-状态为“200 ok”,而不是“304 not modified”- Apache

在客户端浏览器中缓存大的PHP文件是通过设置HTTP响应头中的缓存相关字段来实现的。当客户端第一次请求该PHP文件时,服务器会返回状态码为200的响应,表示请求成功,并在响应头中设置缓存相关字段,告诉浏览器可以缓存该文件。当客户端再次请求该PHP文件时,浏览器会先检查本地缓存,并发送一个条件请求到服务器,携带上次请求时服务器返回的缓存相关字段。如果服务器判断该文件没有发生变化,则返回状态码为304的响应,表示文件未修改,浏览器可以直接使用本地缓存。

Apache作为一种常用的Web服务器软件,可以通过配置文件来设置缓存相关的响应头。以下是一种可能的配置方式:

  1. 在Apache的配置文件中找到相关的虚拟主机或目录配置段。
  2. 在该配置段中添加以下指令:
  3. 在该配置段中添加以下指令:
  4. 上述指令启用了mod_expires模块,并设置了对PHP文件的缓存时间为1个月。可以根据实际需求进行调整。
  5. 重启Apache服务器使配置生效。

这样配置后,当客户端请求PHP文件时,Apache会在响应头中添加Expires和Cache-Control字段,指示浏览器缓存该文件。如果文件未发生变化,浏览器会发送条件请求,服务器返回304响应,浏览器直接使用本地缓存,减少了网络传输和服务器负载。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络) 腾讯云CDN是一种分布式部署的加速服务,可以将静态资源缓存到全球各地的边缘节点,提供更快的访问速度和更好的用户体验。通过配置CDN加速,可以进一步优化PHP文件的缓存效果。

产品介绍链接地址:https://cloud.tencent.com/product/cdn

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用ETag和Expires调优web服务器性能

Header),服务器端的返回状态会是200,格式类似如下: HTTP/1.1 200 OK Date: Tue, 03 Mar 2009 04:58:40 GMT Content-Type: image...、Expires和Etag是标记页面缓存标识 一、Last-Modified、Expires和Etag相关工作原理 1、Last-Modified 在浏览器第一次请求某一个URL时,服务器端的返回状态会是...如果If-None-Match为False,不返回200,返回304 (Not Modified) Response。 3、Expires 给出的日期/时间后,被响应认为是过时。...用于控制请求文件的有效时间,当请求数据在有效期内时客户端浏览器从缓存请求数据而不是服务器端. 当缓存中数据失效或过期,才决定从服务器更新数据。...其他请参考Nginx中Expires B.1、Apache中Etag设置 在Apache中设置Etag的支持比较简单,只用在含有静态文件的目录中建立一个文件.htaccess, 里面加入: FileETag

1K20

HTTP详解(2)-请求、响应、缓存

如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。...如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和Etag....如: HTTP/1.1 200 OK Date: Sun, 17 Mar 2013 08:12:54 GMT Server: Apache/2.2.8 (Win32) PHP/5.2.5 X-Powered-By...常见状态代码、状态描述、说明: 200 OK //客户端请求成功 303:重定向,即从原url重定向到新的url。...1、缓存的优点: 1)服务器响应更快:因为请求从缓存服务器(离客户端更近)而不是源服务器被相应,这个过程耗时更少,让服务器看上去响应更快。

2.3K30
  • 实操 Web Cache

    04:18 GMT 测试成功,并且在浏览器端也测试成功 HTTP/1.1 304 Not Modified 将modified.php伪静态处理 location / {...Expires / Cache-Control 前面所讲 Last-Modified 与 Etag 主要用于分辨文件是否修改过, 无法控制页面在浏览器端缓存的时间。...FastCGI 缓存相关 我们做个尝试将 expires 1d;加到location ~ \.php$中,看看能不能实现缓存的目的。...现在我们来演示一下JSON被缓存的效果,首先要说明 http://api.example.com/article/json/2/20/0.html 不是0.html文件,而是采用phalcon框架开发的一个程序...测试总结 Apache HTTPD 最完善 Lighttpd 其次, Nignx仍在快速发展中,Nignx每个版本差异很大,对HTTP协议实现标准也不太严谨,因为Nignx在大陆是趋势,所以下面给出的例子都是

    2.7K30

    http请求头中缓存的实现

    什么是http缓存呢,当我们使用chrome浏览器,按F12打开控制台,在网络请求中有时候看到状态码是200,有时候状态码是304,当我们去看这种请求的时候,我们会发现状态码为304的状态结果是:Status...Code: 304 Not Modified,而状态码为200的时候一般会有四种情况,一种是直接返回200,没有任何其他的标志,另一种是Status Code: 200 OK (from memory...最后一种不是太常见,Status Code: 200 (from Service Worker).后面这三种状态码看到的效果是灰色的,其实从给出的信息也能看出来是从缓存中获取上数据。...其实我们可以按状态码来区分其为两大类,分别是写上缓存--304和强制缓存--200 协商缓存(304) 这种方式使用到了headers请求头里的两个字段,Last-Modified & If-Modified-Since...200状态码和304状态码何时出现 在没有设置Cache-Contral的情况下,设置Last-Modified和ETag缓存,会出现200(from cache)和304 交替出现的情况。

    2.1K30

    网页性能优化浅谈与实践

    下次浏览器访问该页面时,它可以在高速缓存中查找以前获取的资源,然后从磁盘检索它们,其速度通常比从网络上下载它们的速度快。...简单图示: 对 http 的 304 状态结合 max-age 设置缓存命中流程 1.浏览器初次访问服务器,服务器返回200状态 2.浏览器再次请求服务器时,浏览器会先判断max-age,如果到期则直接请求服务器...,否则直接从缓存中取, 3.服务器收到请求后,判断文件是否被修改过,若是则直接返回200,否则返回304并且浏览器将从缓存中获取文件。...4.若同步刷新页面,则浏览器并不会先判断max-age,而是直接发送请求,服务器接收到请求后,判断文件是否有变化,若有则返回200,若没有则返回304 WeiyiGeek....304状态码,不返回资源;如果不一致则返回200和修改后的资源,并带上新的时间。

    60020

    【Nginx12】Nginx学习:HTTP核心模块(九)浏览器缓存与try_files

    Nginx学习:HTTP核心模块(九)浏览器缓存与try_files 浏览器缓存在 Nginx 的 HTTP 核心模块中其实只有两个简单的配置,这一块也是 HTTP 的基础知识。...浏览器缓存 在 HTTP 协议中,有许多和浏览器缓存有关的选项,而在 Nginx 的核心配置中,也有两个与之相关的配置。...if_modified_since if_modified_since 是由浏览器发送的,让服务端来判断返回 200 还是 304 ,在 Nginx 中,它用于指定响应的修改时间与 if_modified_since...然后第二次请求的时候,浏览器就会带上 if_modified_since ,服务端会返回 304 表示使用本地缓存就可以了。 这是在默认情况下。...这样的话,如果我们手动修改文件的时间,将时间修改到当前时间之后很长的一段时间,那么就可以让浏览器在非强刷的状态下一直返回 304 。

    54630

    图解浏览器缓存

    这里我画了两张图,浏览器第一次请求: 1.jpg 浏览器再次请求: 2.jpg 对于强缓存,chrome浏览器的状态码: 200 OK(from disk cache)或是200 OK (from memory...Apache中,ETag的值默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。...,返回304 Not Modified, 浏览器从缓存中加载资源;若不相同,说明文件被更新,浏览器直接从服务器加载资源, 返回200; ·重新加载资源时更新Last-Modified Header Etag...则说明资源没有变化,返回304 Not Modified, 浏览器从缓存中加载资源,否则返回200 资源内容。...HTTP1.1中ETag的出现主要是为了解决几个Last-Modified比较难解决的问题: ·一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了

    4.2K476

    浏览器缓存机制剖析

    如果浏览器通过某些条件(条件之后再说)判断出来,ok现在这个缓存没有过期可以用,那么连请求都不会发的,直接是启用之前浏览器缓存下来的那份文件,此时状态码为200 第二步:判断服务器中的文件是否有改动 1...、缓存过期,文件有改动,那么下载新文件,此时状态码为200 2、缓存过期,文件无改动,那么服务器只会给你返回一个头信息(304),浏览器读取304后,就会去读取过期缓存文件。...当这个文件缓存过期,浏览器又向服务器请求这个文件的时候,会自动带一个请求头字段If-Modified-Since,其值是上一次传递过来的Last-Modified的值,拿这个值去和服务器中现在这个文件的最后修改时间做对比...值, 若与请求资源当前的Last-Modified值相同, 那么将返回304状态码的响应, 反之, 将返回200状态码响应....对于 GET 或 HEAD 请求, 如果其etags列表均不匹配, 服务器将返回200状态码的响应, 反之, 将返回304(Not Modified)状态码的响应.

    65270

    http协议

    4xx:客户端错误--请求有语法错误或请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求 200 OK 表示从客户端发来的请求在服务器端被正确请求。...如果没有设置http缓存,浏览器发送请求但是返回的数据和上次的一样,返回状态码:304 Not Modified;如果设置了http缓存,如果命中强缓存会返回200 OK (from disk cache...强缓存 不会向服务器发送请求,直接从缓存中读取资源,在chrome控制台的Network选项中可以看到该请求返回200的状态码,并且size显示from disk cache或from memory cache...和返回的响应头etag一致),就会返回304状态码和新的response header通知浏览器从缓存中读取资源;如果对比后发现数据更新了,就会返回200状态码并且从请求响应里读取数据 协商缓存 协商缓存使用...一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析WEB服务器返回的该网页文档中的

    65310

    Linux基础(day44)

    、css、js 当用浏览器去访问一个网站的时候,这个网站里所有的静态文件(比如图片的样式、js),浏览器就会默认把静态文件缓存在电脑里,叫做临时的目录或目录 缓存的时间是在服务器上定义的,如果不去定义...目的就是第二次,第三次访问的时候,不去服务器去下载这些静态文件了 在使用浏览器自带的F12键去进行比对,第一次访问一个图片的时候是200的状态码,第二次访问的时候,就是304,它检测到下载的图片并没有修改过...,所以就不会重新到服务器下载一次,这样可以节省带宽,但没有规定缓存什么时候清空,什么时候去服务器上去下载,再次下载,因为只要浏览器检测到图片未做更改,它这个状态码就一直为304,304这个状态码就意味着他不会去服务器下载...而apache的LogFormat 中正好有一项值满足了这个需求。即 %V 这里是大写的V ,小写的v 记录的是咱们在虚拟主机中设置的ServerName ,这个的确是没有必要记录的。...比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。 filesizeM,指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

    950100

    Http通过header传递参数_http contenttype

    (在缓存的时候可以用到) 设置内容的长度 (缓存的时候可以用到): 用来下载文件: 禁止缓存当前文档: 设置内容类型: 显示登录对话框,可以用来进行HTTP认证 网页重定向 设置网页编码 设置网页输出...状态码 发送一个200 正常响应 header(“HTTP/1.1 200 OK”); 发送一个301 永久重定向 header(‘HTTP/1.1 301 Moved Permanently...content language (en = English) header(‘Content-language: en’); 最后修改时间(在缓存的时候可以用到) // last modified...,通知客户端在指定时间之后再次尝试 Retry-After: 120 Server web服务器软件名称 Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) Set-Cookie...,未被修改则返回304代码 If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT If-None-Match 如果内容未改变返回304代码,参数为服务器先前发送的

    2.1K10

    HTTP Header 详解和获取方法

    : “737060cd8c284d8af7ad3082f209582d” If-Modified-Since 如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码 If-Modified-Since...: Sat, 29 Oct 2010 19:43:31 GMT If-None-Match 如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变...返回资源的MD5校验值 Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== Content-Range 在整个返回体中本部分的字节位置 Content-Range...,通知客户端在指定时间之后再次尝试 Retry-After: 120 Server web服务器软件名称 Server: Apache/1.3.27 (Unix) (Red-Hat...: Basic 方法一:curl curl命令最常用的方法是使用参数-I 获取域名或IP的header信息,包括HTTP返回状态码,server类型,文本类型,缓存时间等等;监控web服务时也常用此方法判断

    4.3K20

    网络协议

    200 OK 请求已正常处理 201 Create 请求成功,并创建了一个新的资源 204 No Content 请求处理成功,但是没有任何资源可以返回给客户端 206 Partial Content...强制缓存生效时,http状态码为200。...Pragma:值为 no-cache 是,不使用缓存,更具新鲜度来使用缓存 Expires: Response Header中过期时间,浏览器再次加载时,如果在这个过期时间内,则命中强缓存 Cache-Contorl...Last-Modified/If-Modified-Since:即最后的修改时间,在浏览器第一次给服务器发送请求之后,服务区会在响应头中加上这个字段。...这些条件请求字段检查资源是否更新 若资源更新,返回资源和200状态码 否则,返回304,告诉浏览器直接从缓存获取资源 缓存参考文档 简书-一文读懂http缓存(超详细) 神三元 - 能不能说一说前端缓存

    88751

    WordPress 技巧:开启 304 Not Modified Header,提高网站效率

    什么 304 Not Modified Header 客户端(一般是浏览器)发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回...浏览器在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。...因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端,只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200。...WordPress 中如何开启 304 Not Modified Header WordPress 作为一个 CMS 系统,如果每天更新的内容不多,对于未登录的用户来说,每次访问同一个页面,如果浏览器中已经有缓存...,其实服务器无需再次生成一次页面,直接返回 304 Not Modified Header,让用户直接查看浏览器中缓存即可。

    45820

    浏览器缓存机制浅析

    真正的浏览器工作的时候并不是将完整的内容保存在本地,各种浏览器都有不同的方式,譬如firefox是一种类似innodb的方式存储的key value 的模式,在地址栏中输入 about:cache 可以看见缓存的文件...需要注意的是,浏览器会在第一次请求完服务器后得到响应,我们可以在服务器中设置这些响应,从而达到在以后的请求中尽量减少甚至不从服务器获取资源的目的。浏览器是依靠请求和响应中的的头信息来控制缓存的。...将If-Modified-Since的日期和服务端该文件的最后修改日期对比,如果相同,则响应HTTP304,从缓存读数据;如果不相同文件更新了,HTTP200,返回数据,同时通过响应头更新last-Modified...实际上ETag并不是文件的版本号,而是一串可以代表该文件唯一的字符串(Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。...304还是200;而当用户使用Ctrl+F5进行强制刷新的时候,只是所有的缓存机制都将失效,重新从服务器拉去资源。

    52810

    Nginx 缓存机制详解!

    浏览器不会向服务器发送任何请求,直接从本地缓存中读取缓存数据并返回 200 状态码,如下图所示。...浏览器在第一次请求数据时,服务器会将缓存的标识与数据一起返回给浏览器,浏览器将这两个缓存到本地缓存数据库中。...再次请求数据时,就会在请求 header 中带上缓存的标识发送给服务器,服务器根据缓存标识对比,如果发生变化,则返回 200 状态码,返回完整的响应数据给浏览器,如果未发生更新,则返回 304 状态码告诉浏览器继续使用缓存数据...这是因为服务端如果进行缓存比较后发现未更新,只返回 header 部分,并返回 304 状态码通知客户端使用本地缓存,没有将报文的 body 部分返回给浏览器,所以请求时间和报文大小才明显优化。...若资源的最后修改时间小于或等于 If-Modified-Since,则说明资源未修改,则返回 304 状态码,告诉浏览器继续使用所保存的缓存数据。

    1.6K10

    HTTP 缓存

    强缓存 强缓存不会向服务器发送请求,直接从缓存中读取资源,在 chrome 控制台的 network 选项中可以看到该请求返回 200 的状态码,并且size显示from disk cache或from...在服务器在响应请求时,会通过Last-Modified告诉浏览器资源的最后修改时间。 浏览器再次请求服务器的时候,请求头会包含Last-Modified字段,后面跟着在缓存中获得的最后修改时间。...如果已经修改,那么开始传输响应一个整体,服务器返回:200 OK 但是在服务器上经常会出现这种情况,一个资源被修改了,但其实际内容根本没发生改变,会因为Last-Modified时间匹配不上而返回了整个实体给客户端...如果相同说明资源没有修改,则响应返 304,浏览器直接从缓存中获取数据信息。如果不同则说明资源被改动过,则响应整个资源内容,返回状态码 200。...浏览器直接读本地缓存,不会再跟服务器端交互,状态码 200。

    30200

    高性能网站建设指南-前端性能优化(一)

    如果确认缓存在副本仍然有效,浏览器就可以使用缓存中的副本。 ​ 典型情况下,缓存副本的有效性源自其最后修改时间。基于响应中的Last-Modified头,浏览器可以知道组件最后的修改时间。...在HTTP1.1中并不是必须的,HTTP1.1中定义的管道可以在一个单独的socket上发送多个请求,管道性能优于持久连接。但IE7不支持,所以很多浏览器和服务器仍然包含Keep-Alive。...Expires头使用一个特定的时间,它要求服务器和客户端的时间严格同步(当然,可以通过Apache mode_expires模块中的ExpiresDefault以相对方式设置日期);另外,过期日期需要经常检查...修订文件名 ​ 如果我们将组件配置可以在浏览器端进行缓存,当这些组件改变时用户如何获得更新呢?设置了Expires头时,过期前会一直使用缓存版本(从硬盘上读取组件),浏览器不会更新。...例如,如果实体依据User-Agent或Accept-Language头而改变,实体的状态可以反映在ETag中。浏览器会使用If-None-Match头将ETag传回原始服务器以进行比较。

    76331

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券