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

Apache 2.4发送Expires标头,但不发送304状态(DEBIAN)

Apache 2.4是一种流行的开源Web服务器软件,用于提供网站和应用程序的服务。在DEBIAN操作系统中,Apache 2.4默认配置中会发送Expires标头,但不发送304状态码。

Expires标头是HTTP响应头的一部分,用于指定资源的过期时间。当浏览器请求一个资源时,服务器会在响应中发送Expires标头,告诉浏览器该资源的过期时间。浏览器在接收到资源后,会将该资源缓存起来,在下次请求该资源时,会先检查资源的过期时间,如果未过期,则直接使用缓存的资源,而不再向服务器发送请求。

304状态码是HTTP协议中的一种状态码,表示资源未修改。当浏览器发送一个带有If-Modified-Since标头的请求时,服务器会检查资源的修改时间,如果资源未发生变化,则返回304状态码,告诉浏览器可以使用缓存的资源。

在DEBIAN操作系统中,Apache 2.4默认配置中发送Expires标头,但不发送304状态码。这意味着服务器会告诉浏览器资源的过期时间,但不会检查资源是否修改。这样的配置可能会导致浏览器在每次请求资源时都向服务器发送请求,而不使用缓存的资源,增加了服务器的负载和网络带宽的消耗。

为了解决这个问题,可以通过修改Apache的配置文件来启用304状态码的发送。具体步骤如下:

  1. 打开Apache的配置文件,通常位于/etc/apache2/apache2.conf或/etc/httpd/httpd.conf。
  2. 找到以下行:#LoadModule expires_module modules/mod_expires.so去掉行首的注释符号“#”,使其生效。
  3. 找到以下行:#LoadModule headers_module modules/mod_headers.so去掉行首的注释符号“#”,使其生效。
  4. 保存并关闭配置文件。
  5. 重启Apache服务器,使配置生效。

启用了Expires模块和Headers模块后,Apache会在响应中发送Expires标头,并且会检查资源的修改时间,如果资源未发生变化,则返回304状态码。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络)。腾讯云CDN是一种分布式部署的加速服务,通过将资源缓存到全球各地的节点服务器上,提供更快的访问速度和更稳定的服务。使用腾讯云CDN可以有效减轻服务器负载,提升网站性能。

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

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

相关·内容

网页性能优化浅谈与实践

通常 cache-control 被认为是一种比 expires(到期) 更现代,更灵活的方法,但是两个可以同时使用。 Q: 如何进行缓存?...Tips : Cache-Control 符合缓存策略时,服务器不会发送新的资源,但不是说客户端和服务器就没有会话了,客户端还是会发请求到服务器的。...Pragma的值为no-cache时,表示禁用缓存, Expires的值是一个GMT时间,表示该缓存的有效时间。 Tips : expires 只是设置内容应在将来的时间。...使用更新且更灵活的高速缓存控制expires通常用作备用。 Tips : Pragma 是旧产物,已经逐步抛弃,有些网站为了向下兼容还保留了这两个字段。...即优先级从高到低是 Pragma -> Cache-Control -> Expires; 基础示例: # Apache 的 .htaccess 配置缓存控制和到期资源 <filesMatch

57620

HTTP缓存机制的Etag、Last-Modified、If-None-Match和If-Modified-Since、Expires和Cache-Control笔记

")(假设服务器支持Etag生成和已经开启了Etag).状态码200    第二次请求:    1.客户端发起 HTTP GET 请求一个文件,注意这个时候客户端同时发送的请求报文请求包括If-None-Match...2.服务器会判断客户端发送过来的If-None-Match值与服务器的Etag值是否与相同,如果相同,就把If-None-Match的值置为false,状态码置为304(未修改——Not Modified...可以通过将Expires HTTP版本1.0字段值设置为早于响应时间的时间来进行模拟。Cache-Control相对于Expires更加具体,细致。...这个和HTTP / 1.0规范中定义的Pragma:no-cache字段具有相同的目的。但是,它仅为请求定义。它没有指定它在响应头中的含义。...If-Modified-Since如果提供的日期以来尚未更改,服务器不会发送文档的实际内容。 如果文档的ETag仍然与If-None-Match的值匹配,则服务器将不发送实际文档。

1.1K20

如何在Ubuntu 16.04上使用Nginx的模块实现浏览器缓存

为此,必须引入告知浏览器行为方式的新HTTP响应。 这就是Nginx的标题模块发挥作用的地方。此模块可用于向响应添加任意任意,但其主要作用是正确设置缓存。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),ETag则会将值存储并发送回带有If-None-Match请求的服务器。 我们可以使用以下命令在命令行上模拟它。...使用ETag命令的问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...第3步 - 配置缓存控制和过期 除了ETag文件验证之外,还有两个缓存控制响应:Cache-Control和Expires。...如果未设置,浏览器将始终从服务器请求文件,期望200 OK或304 Not Modified响应。 我们可以使用模块来设置这些HTTP

1.4K30

如何在CentOS 7上使用Nginx的模块实现浏览器缓存

为此,必须引入告知浏览器行为方式的新HTTP响应。 这就是Nginx的标题模块发挥作用的地方。此模块可用于向响应添加任意任意,但其主要作用是正确设置缓存。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),则会将ETag值存储并发送回带有If-None-Match请求的服务器。 我们可以使用以下命令在命令行上模拟它。...ETag的问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...第3步 - 配置缓存控制和过期 除了ETag文件验证之外,还有两个缓存控制响应:Cache-Control和Expires。...如果未设置,浏览器将始终从服务器请求文件,期望200 OK或304 Not Modified响应。 我们可以使用模块来设置这些HTTP

1.4K00

对不起,看完这篇HTTP,真的可以吊打面试官

如果这个通用不存在的话,则会检查是否存在 Expires 。如果 Exprires 存在,那么它的值减去 Date 的值就可以确定其有效性。...最后,如果max-age 和 expires 都不存在,就去寻找 Last-Modified ,如果存在此,则高速缓存的有效性等于 Date 的值减去 Last-modified 的值除以...进行比较,以获取其当前资源版本,如果两个值都匹配(即资源未更改),则服务器会发回 304 Not Modified状态,没有主体,它告诉客户端响应的缓存仍然可以使用。...但不是所有幂等的方法都是安全的,例如 PUT 和 DELETE 都是幂等的,但不安全。 幂等性:如果相同的客户端发起一次或者多次 HTTP 请求会得到相同的结果,则说明 HTTP 是幂等的。...当 GET 和 POST 发送的 If-None-Match与 Etag 匹配时,服务器会返回 304

6.3K21

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

如果组件没有被修改过,服务器会返回一个“304 Not Modified”状态码并不再发送响应体,从而得到一个更小且更快的相应。...Expires使用一个特定的时间,它要求服务器和客户端的时间严格同步(当然,可以通过Apache mode_expires模块中的ExpiresDefault以相对方式设置日期);另外,过期日期需要经常检查...浏览器下载组件后,会进行缓存,再次使用该组件时,会根据Expires的值,判断是否发起请求。如果过期了,浏览器在重用之前必须检查他是否仍然有效,发送条件GET请求(前面已经提及)。...例如,如果实体依据User-Agent或Accept-Language而改变,实体的状态可以反映在ETag中。浏览器会使用If-None-Match将ETag传回原始服务器以进行比较。...你可能希望如果ETag不匹配但最新修改时间相同,也能发送一个“304 Not Modified”响应,但实际并不是这样的。

72831

震惊 | HTTP 在疫情期间把我吓得不敢出门了

如果这个通用不存在的话,则会检查是否存在 Expires 。如果 Exprires 存在,那么它的值减去 Date 的值就可以确定其有效性。...最后,如果max-age 和 expires 都不存在,就去寻找 Last-Modified ,如果存在此,则高速缓存的有效性等于 Date 的值减去 Last-modified 的值除以...进行比较,以获取其当前资源版本,如果两个值都匹配(即资源未更改),则服务器会发回 304 Not Modified状态,没有主体,它告诉客户端响应的缓存仍然可以使用。...但不是所有幂等的方法都是安全的,例如 PUT 和 DELETE 都是幂等的,但不安全。 幂等性:如果相同的客户端发起一次或者多次 HTTP 请求会得到相同的结果,则说明 HTTP 是幂等的。...当 GET 和 POST 发送的 If-None-Match与 Etag 匹配时,服务器会返回 304

5.2K20

http请求头中缓存的实现

什么是http缓存呢,当我们使用chrome浏览器,按F12打开控制台,在网络请求中有时候看到状态码是200,有时候状态码是304,当我们去看这种请求的时候,我们会发现状态码为304状态结果是:Status...15:58:05 GMT 浏览器在发送请求的时候服务器会检查请求request header里面的If-modified-Since,如果最后修改时间相同则返回304,否则给返回头(response...另外,浏览器在发送请求的时候服务器会检查请求(request header)里面的if-none-match的值与当前文件的内容通过hash算法(例如 nodejs: cryto.createHash...通过HTTP响应控制,也就是我们在上面说到的catche-control和expires Expires设置的过期时间是一个绝对的GMT时间,例如:Expires:Thu,20 Jun 2019...200状态码和304状态码何时出现 在没有设置Cache-Contral的情况下,设置Last-Modified和ETag缓存,会出现200(from cache)和304 交替出现的情况。

1.8K30

HTTP 缓存机制

强缓存可以通过 Expires / Cache-Control 控制,命中强缓存时不会发起网络请求,资源直接从本地获取,浏览器显示状态码 200 from cache。...Expires 是由服务端返回的资源过期时间(GTM 日期格式/时间戳),若用户本地时间在过期时间前,则不发送请求直接从本地获取资源。 2.2 Cache-Control HTTP/1.1 产物。...值得注意的是,虽然以上常用字段都是响应的字段,但是 Cache-Control 同时也支持请求,例如 Cache-Control: max-stale= 表明客户端愿意接收一个已经过期但不能超出...如果资源请求的响应头里含有 ETag,客户端可以在后续的请求的头中带上 If-None-Match 来验证缓存。若服务器判断资源标识一致,则返回 304 状态码告知浏览器可从本地读取缓存。...若服务器判断资源最后修改时间一致,则返回 304 状态码告知浏览器可从本地读取缓存。

92220

小结HTTP状态

101 Switching Protocol:该状态码是响应客户端Upgrade发送的,并且指示服务器也正在切换协议。...2xxs状态码 200 OK:请求成功。成功的含义取决于HTTP方法: GET:资源已被提取并在消息正文中传输。 HEAD:实体位于消息正文中。 POST:描述动作结果的资源在消息体中传输。...204 No Content:服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。遇到复杂请求时候,浏览器会发送一个OPTION方法进行预处理返回响应。...由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。...304 Not Modified:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。

1.1K20

在Spring Boot中实现HTTP缓存

应该使用Expires HTTP。应使用标准化数据格式之一格式化日期值。...在下一个请求中,客户端将此日期发送回服务器,以便它可以验证自上一个请求以来资源是否已被修改。如果资源未更改,则服务器不必再次重新发送数据。相反,它使用304 HTTP代码响应,没有任何有效负载。...客户端根据Last-Modified的值设置其值,该是与此特定资源的先前响应一起发送的。...然后,我们将日期与If-Modified-Since的值进行比较,并在正匹配上返回一个空。否则,服务器发送具有Last-Modified的适当值的完整响应主体。...当客户端再次访问资源时,它应该在名为If-None-Match的头中发送其值。如果该值与资源的新计算的ETag匹配,则服务器可以使用空内容和HTTP代码304进行响应。

5K50

HTTP1.1协议状态

100 的目的是允许正在发送带有请求正文的请求消息的客户端确定源服务器是否愿意接受请求(基于请求)在客户端发送请求正文之前。...再返回给客户端, 在响应状态行中就会用 203 状态码注释, 此信息非权威信息, 非原信息. ---- 204 No Content (无内容) 服务器已满足请求,但不需要返回实体,可能要返回更新的元信息...仅当由Cache-Control或Expires字段指示时,此响应才可缓存。 临时URI应该由响应中的Location字段给出。...304响应必须不包含消息正文,因此始终由字段之后的第一个空行终止。...仅当由Cache-Control或Expires字段指示时,此响应才可缓存。 临时URI应该由响应中的Location字段给出。

2.6K40

ASP.NET Core ResponseCache进行缓存操作

永远不会存储响应值为 * 的响应。 Expires 除非被其他 Cache-Control 重写,否则不会存储或检索此响应过时的响应。...否则,将提供304(未修改)响应。 If-Modified-Since 如果 If-None-Match 不存在,则在缓存的响应日期比提供的值更新时,将从缓存中提供完整响应。...否则,将提供304-未修改响应 Date 从缓存提供时,如果未在原始响应中提供,则中间件会设置 Date 。...Content-Length 从缓存提供时,如果未在原始响应中提供,则中间件会设置 Content-Length 。 Age 忽略原始响应中发送的 Age 。...Expires 和 max-age 和 s-maxage 缓存指令指定的响应不能过时。 响应缓冲必须成功。 响应的大小必须小于配置的或默认 SizeLimit。

2.9K20

跟我一起探索 HTTP-HTTP缓存

请注意,某些 CDN 提供自己的,这些仅对该 CDN 有效(例如,Surrogate-Control)。目前,正在努力定义一个 CDN-Cache-Control 来标准化这些。...基于 age 的缓存策略 存储的 HTTP 响应有两种状态:fresh 和 stale。fresh 状态通常表示响应仍然有效,可以重复使用,而 stale 状态表示缓存的响应已经过期。...Expires 或 max-age 在 HTTP/1.0 中,新鲜度过去由 Expires 指定。 Expires 使用明确的时间而不是通过指定经过的时间来指定缓存的生命周期。...因此,下面的请求显示客户端发送带有 If-Modified-Since 请求的请求,以询问服务器自指定时间以来是否有任何的改变。...此外,添加 Last-Modified 和 ETag 将允许客户端发送条件请求,如果 HTML 没有更新,则可以返回 304 Not Modified: 200 OK HTTP/1.1 Content-Type

21251

图解浏览器缓存

一 强缓存 1.1 区分Expires和Cache-Control 以一个接口返回的响应为例: 图片1.png 这里我画了张思维导图,对Expires和Cache-Control做比较: Expires...的max-age规定了缓存有效时间(2552s),是相对时间; (3)若响应Expires和Cache-Control同时存在,Cache-Control优先级高于Expires Cache-Control...,找到这个资源后,比较Expires或Cache-Control的max-age字段值做比较, 如果在有效期内,则读取缓存内容;若缓存已过期,则重新向服务器发送请求; ·  header在重新加载的时候会被更新...Apache中,ETag的值默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。...2.4 为什么有了Last-Modified,还要用Etag呢?

4.2K476

浏览器缓存机制剖析

、缓存过期,文件有改动,那么下载新文件,此时状态码为200 2、缓存过期,文件无改动,那么服务器只会给你返回一个信息(304),浏览器读取304后,就会去读取过期缓存文件。...Expires Expires:Wed, 05 Apr 2017 00:55:35 GMT1 即到期时间, 以服务器时间为参考系, 其优先级比 Cache-Control:max-age 低, 两者同时出现在响应时...值, 若与请求资源当前的Last-Modified值相同, 那么将返回304状态码的响应, 反之, 将返回200状态码响应....对于 GET 或 HEAD 请求, 如果其etags列表均不匹配, 服务器将返回200状态码的响应, 反之, 将返回304(Not Modified)状态码的响应....浏览器 前提 操作 表现 正常表现 IE8 资源内容没有修改 新开一个窗口加载网页 浏览器重新发送请求(返回200) 重新发送请求(返回304) IE8 资源内容已修改 原浏览器窗口中单击 Enter

60370

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券