标头过期?我如何实施它们以及它们是什么?

问题描述 投票:0回答:5

我尝试过寻找如何实现它们,但这对我来说毫无意义。它谈到了 apache、Django 和 Lighttpd,但我不知道它们是什么。

我在网页上使用了 ySlow,它告诉我需要一个过期标头。

显然它确实对性能有帮助,而这正是我真正需要的。

jquery performance apache header
5个回答
1
投票

与 jQuery 无关。您的服务器的响应应设置适当的标头,例如 Expires、E-Tag 等。

您在服务器端使用什么语言?

如果您使用 PHP,发送 Expires 标头的示例如下:

header("Expires: Tue, 31 Aug 2010 02:30:00 GMT");

1
投票

Expires是一个HTTP头字段,不能通过jQuery设置。

但是您可以尝试添加 HTTP 等效

META
元素:

$("head").append('<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">')

但是,如果识别出这样的 HTTP 等效

META
元素,则取决于用户代理。更好的方法是在 HTTP 标头中设置它。

顺便说一句:在 HTTP 1.1 中,带有 max-age 参数的 Cache-Control 标头字段优于 Expires(请参阅基本过期机制的修改)。


1
投票

Expires
标头位于实际页面本身之外,它是服务器添加到响应中的元数据,以向客户端指示内容的有效时间。

最终,由服务器来设置响应标头。这可以在全局范围内完成,以便从服务器发送的所有内容都具有相同的值。或者,如果您使用服务器端平台(例如 ASP.NET、PHP 等),那么您可以以编程方式并基于每个资源(页面)设置

Expires
标头。

但是,听起来您只需要全局设置它们 - 这通常是通过服务器设置完成的。

对于 Apache,请查看 mod_expires

对于 IIS7,看看这个

对于其他服务器平台,只需尝试谷歌搜索“Howto set expires header {server}”,其中 {server} 是您需要的任何平台/版本。

并澄清它们是什么 如果浏览器之前检索过某个资源(例如 myPage.html),并且该资源的过期时间为 24 小时,那么浏览器实际上会被告知“如果您尝试在接下来的 24 小时内再次加载此页面,您可以只显示您之前检索到的版本,而不是从服务器请求新副本”。

对于静态页面,这可能是理想的选择 - 较长的过期时间可以为用户带来更快的页面加载速度(浏览器节省了到服务器的行程),并且服务器必须处理更少的请求。

但是;对于过期时间较长的动态页面可能是有害的。想象一个仅显示时间的页面,如

<h1>1:01PM EST</h1>

(服务器在其中生成 HTML)。如果过期标头设置为 1 小时之类的值,那么浏览器可能会向用户显示“1:01 EST”,而它
应该是“1:45 EST”等。

如果您需要显式禁用浏览器缓存(不同的浏览器使用不同的默认设置,即:IE8 对于缓存非常积极),那么您可以设置

Expires=-1

,这本质上是说页面立即过期。


0
投票

Expires

标头用于 HTTP 缓存,并指示对象的当前版本不再是当前的下一个日期/时间。浏览器和 HTTP 缓存可以使用它来减少源 Web 服务器的负载。

还有一些其他涉及缓存的标头,您还应该研究一下,例如

ETag

Cache-Control

参见:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13


-1
投票
我的服务网站如何删除不需要的到期标头

https://karachiexpert.com 熏蒸服务

© www.soinside.com 2019 - 2024. All rights reserved.