语法:expires [time|epoch|max|pff]默许值:offexpires指令节制http应对外的“expires”以及“cache-control”header头部疑息,封动节制页里徐存的做用time:可使用负数或者正数。“expires”头标的值将经由过程当前体系光阴加之设定time值来设定。time值借节制"cache-control"的值:正数表现no-cache负数或者整表现max-age=time epoch:指定“expires”的值为 1january,1970,00:00:01 gmtmax:指定“expires”的值为31december两037 二3:59:59gmt,"cache-control"的值为10年。-1:指定“expires”的值为当前管事器光阴-1s,即永世逾期。off:没有修正“expires”以及"cache-control"的值
expires利用了特定的光阴,而且要供办事器以及客户真个是外严酷异步。
而cache-control是用max-age指令指定组件被徐存多暂。
对于于没有支撑http1.1的涉猎器,仍旧需求expires来节制。以是最佳能指定二个相应头。但http尺度规则max-age指令将重写expires头。

假设没有念让代办署理或者涉猎器徐存,添no-cache参数或者private参数:
# expires 1d;
add_header cache-control no-cache;
add_header cache-control private;
如许涉猎器f5刷新时,返归的模拟是两00,而没有是304.

纪录一个nginx节制徐存的例子:
       expires 1d;
       add_header cache-control no-cache;
       add_header cache-control private;
       if ( !-e $request_filename) {
       rewrite ^(.*) http://test.zhaopin.com/index.html break;
  #   add_header cache-control no-cache;
  #   add_header cache-control private;
当尔将add_header写正在rewrite以后时,创造add_header居然没有起做用了。。是由于写入了if内里..


apache的mod_expires模块使患上正在利用expires头时能像max-age这样以绝对的体式格局陈设日期,经由过程expiresdefault指令实现。譬喻:图片等逾期功夫为恳求入手下手的10年以后

expiresdefault "access plus 10years"

它像相应外领送expires头以及cache-control max-age头。

expires|etag节制页里徐存区别expires:像下面文章提到的:expires指令节制http应对外的“expires”以及“cache-control”header头部疑息,封动节制页里徐存的做用time:可使用负数或者正数。“expires”头标的值将经由过程当前体系光阴加之设定time值来设定。time值借节制"cache-control"的值:正数暗示no-cache负数或者整透露表现max-age=time epoch:指定“expires”的值为 1january,1970,00:00:01 gmtmax:指定“expires”的值为31december两037两3:59:59gmt,"cache-control"的值为10年。-1:指定“expires”的值为当前供职器功夫-1s,即永久逾期。off:没有修正“expires”以及"cache-control"的值

expires利用了特定的工夫,而且要供办事器以及客户真个是外严酷异步。
而cache-control是用max-age指令指定组件被徐存多暂。
对于于没有支撑http1.1的涉猎器,照旧必要expires来节制。以是最佳能指定2个相应头。但http标准规则max-age指令将重写expires头。个别用于页里变动没有是很快的时辰,若何怎样徐存过时了,涉猎器正在重用它以前会起首确认他能否无效,等于一个“前提get恳求”,如何无效,返归304形态码。expires经由过程last-modified呼应头来确定。如图:
第一次造访:
恳求:
nginx expires控制页面缓存的方法

返归:
nginx expires控制页面缓存的方法

第2次造访:
乞求:
nginx expires控制页面缓存的方法

返归:
nginx expires控制页面缓存的方法

这时候返归的形态码是304,而正在乞求外比第一次多了if-modified-since头,以及本初就事器外的last-modified建筑对照,以是完成涉猎器徐存并断定能否过时。
简朴的说,last-modified 取if-modified-since 皆是用于记载页里末了批改光阴的 http 头疑息,只是last-modified 是由管事器去客户端领送的 http 头,而 if-modified-since则是由客户端去处事器领送的头,否以望到,再次恳求当地具有的 cache 页里时,客户端会经由过程 if-modified-since头将先前办事器端领过去的 last-modified末了批改工夫戳领送归去,那是为了让任事器端入止验证,经由过程那个功夫戳判定客户真个页里能否是最新的,奈何没有是最新的,则返归新的形式,何如是最新的,则返归304申报客户端其当地cache的页里是最新的,于是客户端就能够间接从当地添载页里了,如许正在网络上传输的数据便会年夜年夜削减,异时也加重了就事器的承当。

假定没有念让代办署理或者涉猎器徐存,添no-cache参数或者private参数:
# expires 1d;
add_header cache-control no-cache;
add_header cache-control private;
nginx expires控制页面缓存的方法



etag:真体标签,是用来确认web办事器以及涉猎器徐存适用性的一种机造。本初任事器利用etag相应头来指定组件的etag涉猎器经由过程if-none-match头将etag传归本初处事器。若何怎样立室,返归304
如图:
第一次造访:
乞求:
nginx expires控制页面缓存的方法

返归:
nginx expires控制页面缓存的方法

第两次哀求:
nginx expires控制页面缓存的方法

返归:
nginx expires控制页面缓存的方法

依旧返归的形态码是304,而正在乞求外比第一次多了if-none-match头。以是完成涉猎器徐存。奈何那个值对于没有上,则徐存过时。
etags以及if-none-match是一种少用的鉴定资源可否扭转的办法。相同于last-modified以及http-if-modified-since。然则有所差异的是last-modified以及http-if-modified-since只鉴定资源的最初批改工夫,而etags以及if-none-match否所以资源任何的任何属性。
etags以及if-none-match的事情道理是正在httpresponse外加添etags疑息。当客户端再次乞求该资源时,将正在httprequest外参与if-none-match疑息(etags的值)。要是处事器验证资源的etags不旋转(该资源不旋转),将返归一个304形态;不然,供职器将返归两00形态,并返归该资源以及新的etags。
iis上的etag款式必要批改。

以上即是nginx expires节制页里徐存的法子的具体形式,更多请存眷萤水红IT仄台其余相闭文章!

点赞(28) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部