Expires

2023-12-11 16:39
文章标签 expires

本文主要是介绍Expires,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Expires是RFC 2616(HTTP/1.0)协议中和网页缓存相关字段。用来控制缓存的失效日期,要注意的是,HTTP/1.0有一个功能比较弱的缓存控制机制:Pragma,使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。

Expires字段声明了一个网页或URL地址不再被浏览器缓存的时间,一旦超过了这个时间,浏览器都应该联系原始服务器。RFC告诉我们:“由于推断的失效时间也许会降低语义透明度,应该被谨慎使用,同时我们鼓励原始服务器尽可能提供确切的失效时间。”  对于一般的纯静态页面,如html、gif、jpg、css、js,默认安装的Apache服务器,不会在响应头添加这个字段。Firefox浏览器接受到响应后,如果发现没有Expires字段,浏览器根据文件的类型和“Last-Modified”字段来推断出一个合适的失效时间,并存储在客户端。推测出的时间一般是接受到响应时间后的三天左右。  Apache的expires_module模块可以在Http响应头部自动加上Expires字段。在Apache的httpd.conf文件中进行如下配置:  #启用expires_module模块  LoadModule expires_module modules/mod_expires so  # 启用有效期控制  ExpiresActive On  # GIF有效期为1个月  ExpiresByType image/gif A2592000  # HTML文档的有效期是最后修改时刻后的一星期  ExpiresByType text/html M604800  #以下的含义类似  ExpiresByType text/css “now plus 2 month”  ExpiresByType text/js “now plus 2 day”  ExpiresByType image/jpeg “access plus 2 month”  ExpiresByType image/bmp “access plus 2 month”  ExpiresByType image/x-icon “access plus 2 month”  ExpiresByType image/png “access plus 2 month”  对于动态页面,如果在页面内部没有通过函数强制加上Expires,例如header(”Expires: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”),Apache服务器会把Wed, 11 Jan 1984 05:00:00 GMT作为Expires字段内容,返回给浏览器。即认为动态页面总是失效的。而浏览器仍然会保存已经失效的动态页面。  可以发现Firefox浏览器总是缓存所有页面,不管失效、不失效还是没有声明失效时间。即使缓存中声明了一个网页的实效日期是1970-01-01 08:00:00,浏览器仍然会发送该文件在缓存中的Last-Modified和ETag字段。 如果在服务器端验证通过,返回304状态,浏览器就还会使用此缓存

这篇关于Expires的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/481368

相关文章

解决cookie的Expires属性值总是0001-1-1 0:00:00的问题

给cookie的Expires赋值,发现读出值都是0001-1-1 0:00:00;跟踪调试发现不是转换问题,cookie读取后默认值就是0001-1-1 0:00:00。解决方法,设置过期项目: HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["User"];        if (cookie != nul

Web前端性能优化(三)添加Expires头

本文转自:http://www.chinaz.com/web/2015/0417/399716.shtml 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期。当浏览器看到响应中有一个Expires头时,它会和相应的组件一起保存到其缓存中,只要组件没有过期,浏览器就会使用缓存版本而不会进行任何的HTTP请求。Expires设置的日期格式必须为GMT(格林

使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能

前几天把网站部署到服务器上后发现访问速度和龟速差不多,内心感到非常焦虑——之前并未做过这方面的尝试,要解决问题实在有些头大。 但幸好之前做过一个项目,本地访问速度感觉奇慢,但正式环境下访问速度反倒快得飞起。虽然我期初并不知晓原因,但这毕竟是解决问题的线索。 追本溯源的找,情况倒也不难办。 ehcacheorg.apache.catalina.filters.ExpiresFilter eh

【转】Expires和max-age的区别

作者:FinalBSD  原载: http://www.sanotes.net/html/y2008/154.html  版权所有。转载时必须以链接形式注明作者和原始出处及本声明。 Author:FinalBSD Date:2008-07-09 Expires和max-age都可以用来指定文档的过期时间,但是二者有一些细微差别 1.Expires在HTTP/1.0中已经定义,Cache-Con

ETag、Expires、Cache-Control

ETag,全称为:Entity Tag,意思是实体标签,从名字上看,是对于某种实体的一个标识。它属于HTTP协议的一部分,也就是所有的Web服务器都应该(也确实能)支持这个特性。它的作用是用一个特殊的字符串来标识某个资源的“版本”,客户端(浏览器)来请求的时候,可以比较,如果ETag一致,则表示该资源并没有修改过,客户端(浏览器)可以使用自己缓存的版本。   响应标头优势 和特点劣势 和可能的

nginx浏览器缓存和上流缓存expires指令_nginx配置HTTPS

1.nginx控制浏览器缓存是针对于静态资源[js,css,图片等] 1.1 expires指令 location /static {alias/home/imooc;#设置浏览器缓存10s过期expires 10s;#设置浏览器缓存时间晚上22:30分过期expires @22h30m;#设置浏览器缓存1小时候过期expires -1h;#设置浏览器不缓存expires epoch;#设置

三、浏览器缓存动如何使用(Expires、 cache-control、Etag、last-modified)----哪些文件需要强缓存,哪些文件需要协商缓存

参考链接1:彻底弄懂强缓存与协商缓存 参考链接2:浏览器缓存 参考链接3:扼杀 304,Cache-Control: immutable 如何搭建 express,或者node服务 ### 如何搭建 express,npm install express --save### express 如何实现热更新npm install node-dev -D// package.json 里的sc