首页
学习
活动
专区
工具
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-MatchFalse,不返回200,返回304 (Not Modified) Response。 3、Expires 给出日期/时间后,被响应认为是过时。...用于控制请求文件有效时间,当请求数据在有效期内时客户端浏览器缓存请求数据不是服务器端. 当缓存数据失效或过期,才决定从服务器更新数据。...其他请参考NginxExpires B.1、ApacheEtag设置 Apache设置Etag支持比较简单,只用在含有静态文件目录建立一个文件.htaccess, 里面加入: FileETag

86820

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)服务器响应更快:因为请求从缓存服务器(离客户端更近)不是源服务器被相应,这个过程耗时更少,让服务器看上去响应更快。

2K30

实操 Web Cache

04:18 GMT 测试成功,并且浏览器端也测试成功 HTTP/1.1 304 Not Modifiedmodified.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.5K30

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 交替出现情况。

1.8K30

网页性能优化浅谈与实践

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

57720

【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

39230

图解浏览器缓存

这里我画了两张图,浏览器第一次请求: 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.1ETag出现主要是为了解决几个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)状态响应.

60470

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服务器返回该网页文档

62410

Linux基础(day44)

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

909100

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代码,参数服务器先前发送

1.8K10

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 获取域名或IPheader信息,包括HTTP返回状态码,server类型,文本类型,缓存时间等等;监控web服务时也常用此方法判断

4K20

Nginx 缓存机制详解!

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

1.4K10

浏览器缓存机制浅析

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

46610

网络协议

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缓存(超详细) 神三元 - 能不能说一说前端缓存

85651

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,让用户直接查看浏览器缓存即可。

32220

HTTP 缓存

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

27500

彻底解决SESSION过期异常:一文讲透Http缓存机制

浏览器浏览器会在 js 和图片等文件解析执行后直接存入内存缓存,那么当刷新页面时只需直接从内存缓存读取; css 文件则会存入硬盘文件,所以每次渲染页面都需要从硬盘读取缓存。...If-Modified-Since 字段值,则重新返回资源,状态 200;否则则返回 304,代表资源无更新,可继续使用缓存文件,如下: Etag / If-None-Match Etag...;不一致则重新返回资源文件状态 200,如下: 注:Etag / If-None-Match 优先级高于 Last-Modified /If-Modified-Since,同时存在则只有...如果客户端发送了一个带条件GET 请求且该请求已被允许,文档内容(自上次访问以来或者根据请求条件)并没有改变,则服务器应当返回这个304状态304状态码或许不应该认为是一种错误,而是对客户端缓存情况下服务端一种响应...服务端只要判断If-Modified-Since时间和当前请求文件Last-Modified,就可以确定是返回 304 还是 200

1.5K30
领券