简介 目录 评价 推荐
  • UFO2015 2015-08-05
    etag 实体标签 怎么配置?

    1、先说ETag是什么:

    在典型用法中,当一个URL被请求,Web服务器会返回资源和其相应的ETag值,它会被放置在HTTP的“ETag”字段中:

    ETag: "686897696a7c876b7e"

    然后,客户端可以决定是否缓存这个资源和它的ETag。以后,如果客户端想再次请求相同的URL,将会发送一个包含已保存的ETag和“If-None-Match”字段的请求。

    If-None-Match: "686897696a7c876b7e"

    客户端请求之后,服务器可能会比较客户端的ETag和当前版本资源的ETag。如果ETag值匹配,这就意味着资源没有改变,服务器便会发送回一个极短的响应,包含HTTP “304 未修改”的状态。304状态告诉客户端,它的缓存版本是最新的,并应该使用它。

    然而,如果ETag的值不匹配,这就意味着资源很可能发生了变化,那么,一个完整的响应就会被返回,包括资源的内容,就好像ETag没有被使用。这种情况下,客户端可以用新返回的资源和新的ETag替代先前的缓存版本。

    --摘自维基百科HTTP ETAG


    如图,这是打开百度首页的所有请求。服务器响应头里面包含了一个ETag标签,相当于这个图片的“身份证号”。由于我刷新了一次,浏览器第二次请求这个图片,请求头里面包含If-None-Match标签,里面是之前收到的ETag,

    http://img.mukewang.com/567e146e0001657708460575.jpg

    2、再说Etag怎么启用:

    上面可以看出ETag在服务器的响应头先出现,那么和HTML也没关系了。需要在服务器端相关软件进行配置。网上教程很多。我就不一一搬运了。以下是三个常用服务器端开启ETag的说明:

    IIS http://www.t086.com/article/5210

    Apache http://www.t086.com/article/5209

    Nginx http://www.t086.com/article/5207


    3回答·3422浏览
  • 火星上的慕老爷 2015-06-06
    如何配置ETAG

    Etag的工作原理
    Etag在服务器上生成后,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。我们常见的是使用If-None-Match.请求一个文件的流程可能如下:
    新的请求
    客户端发起HTTP GET请求一个文件(css ,image,js);服务器处理请求,返回文件内容和一堆Header(包括Etag,例如”2e681a-6-5d044840″),http头状态码为为200.

    同一个用户第二次这个文件的请求
    客户端在一次发起HTTP GET请求一个文件,注意这个时候客户端同时发送一个If-None-Match头,这个头中会包括上次这个文件的Etag(例如”2e681a- 6-5d044840″),这时服务器判断发送过来的Etag和自己计算出来的Etag,因此If-None-Match为False,不返回200,返 回304,客户端继续使用本地缓存;

    注意.服务器又设置了Cache-Control:max-age和Expires时,会同时使用,也就是说在完全匹配If-Modified-Since和If-None-Match即检查完修改时间和Etag之后,服务器才能返回304.

    下面是在Apache中的Etag的配置

    在Apache中设置Etag的支持比较简单,只需要在apache的配置中加入下面的内容就可以了:

    FileETag MTime Size

    2回答·4357浏览
  • Amao365 2014-09-14
    0回答·880浏览
  • 278500368 2014-09-14
    3回答·1097浏览
  • zsk 2014-09-14
    2回答·1033浏览
  • W_Bo 2014-09-13
    1回答·856浏览
  • 蚊子漫布 2014-09-11
    0回答·945浏览
  • 123456_0069 2014-06-17
    4回答·1046浏览
  • eqzcy 2014-06-09
    7回答·1110浏览
  • SabrinaD 2014-03-27
    46回答·2046浏览
数据加载中...
开始学习 免费