首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP缓存(Cache-Control、Expires 、ETag

具体作用这样 接受一个String 或 Buffer,返回一个固定的String ?...可见返回至完全改变了 这个特性可以用来判断两次信息传输是否完整一致 ETag 例子: 例如我们请求一个js文件。 设置一个ETag响应头 ?...这样做的作用是:如果请求和响应的MD5一样,说明不需要重新下载这个js文件。这时我们修改代码: ?...HTTP 304 没有响应体,因为不需要下载响应内容,直接用缓存就行了 ETag与 Cache-Control的区别 假设我们请求两个文件,CSS文件使用Cache-Control缓存,js文件使用ETag...所以: 由于CSS的请求是用缓存(Cache-Control)的,所以直接不发请求 而js用的ETag,有请求也有响应,只不过如果MD5一样,那么就不下载响应体

5.1K50

HTTP头信息中的参数Etag

下面开始介绍 Etag:        Etag在HTTP1.1中有介绍,主要的作用就是在(css file, image, javascript file)文件后面添加一个唯一的参数(相当于查询参数字符串...),Etag有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取 Etag发生变化的文件,减少浏览器端数据的流量,加快浏览器的反应速度,重要的是减轻服务器端的压力,所以服务器端Etag...ETag(实体标签)应答头的文件的属性(ETag的值用于进行缓冲管理以节约网络带宽)。...头 在大型多WEB集群时,使用ETag时有问题,所以有人建议使用WEB集群时不要使用ETag,其实很好解决, 因为多服务器时,INode不一样,所以不同的服务器生成的ETag不一样,所以用户有可能重复下载...(这时ETag就会不准),明白了上面的原理和设置后,解决方法也很容易,让ETag后面二个参数,MTime和Size就好了.只要ETag的计算没有INode参与计算,就会很准了.

1.9K40

Web前端性能优化教程05:配置ETag

什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串,是web服务器用于确认缓存组件的有效性的一种机制,通常可以使用组件的某些属性来构造它。...为什么要引入ETag? ETag主要是为了解决Last-Modified无法解决的一些问题: 1....ETag带来的问题 ETag的问题在于通常使用某些属性来构造它,有些属性对于特定的部署了网站的服务器来说是唯一的。...如果使用Last-Modified不会出现任何问题,可以直接移除ETag,google的搜索首页则没有使用ETag。 2....确定要使用ETag,在配置ETag的值的时候,移除可能影响到组件集群服务器验证的属性,例如只包含组件大小和时间戳。

1.2K60

负载均衡环境中和如何设置Expires和Etag

以下内容主要考虑Apache+squid 环境 ETag Header是文件修改时间、文件大小和inode号生成的校验(checksum),在多台服务器的负载均衡环境下会因部署内容的inode节点差异造成...ETag 的不同,在多台WEB前端做负载均衡的情况下,会因为请求同一个数据但不同机器的 ETag 而影响了响应....具体表现为用户在第一次请求某一内容时下载而再次时浏览器会发现ETag不同而再次请求下载.。...(再次刷新时查看是否响应码为:304) 对于Apache 可以使用 FileEtag 选项配置 Apache 的默认ETag的值总是由文件的索引节点(Inode)、大小(Size)、最后修改时间(MTime...信息 Date Thu, 07 Aug 2008 07:27:57 GMT Server Apache Last-Modified Fri, 27 Jun 2008 07:18:52 GMT Etag

84820

HTTP缓存头Last-Modified和ETag介绍

Content-Length: 66529 Content-Type: image/jpeg Last-Modified: Tue, 19 Aug 2014 12:23:54 GMT Accept-Ranges: bytes ETag...复制代码 代码如下: HTTP/1.1 304 Not Modified Last-Modified: Tue, 19 Aug 2014 12:23:54 GMT Accept-Ranges: bytes ETag...Last-Modified和ETag都是用于HTTP缓存,浏览器在第二次请求时会将其传回给服务器用于判断资源是否有变化。...ETag是HTTP/1.1标准开始引入的,它是对Last-Modified的补充,主要原因有以下几点: ·一些周期性修改的文件,修改时间变了但内容没变,此时不希望重新GET; ·一些文件修改非常频繁,比如...1秒内修改了多次,Last-Modified只能精确到秒; ·一些服务器不能得到文件修改的精确时间; 说明:HTTP/1.1标准没有规定Etag的内容是什么或者说要怎么实现,唯一规定的是Etag需要放在引号内

32830

用 cURL 请求测试 ETag 浏览器缓存

有一种将 ETag标识符用于 Web 资源的策略。 简而言之,ETag 标识符是一个值,通常是一个散列,代表特定 Web 资源的版本。...etag 标头代表资源的版本,并随将来的请求一起发送。如果服务器回复说两次请求之间的 etag 没有改变,则响应将会带有 304 代码,从而将使用缓存的资源。...如果 etag 不同,则使用新的 etag 哈希产生 200 响应。 与压缩的缓存资源进行交互 如果查看浏览器的网络检查器,您可能会注意到资源的 etag 哈希值附加了 -df 值。...为了使 cURL 超越此限制,以下请求将起作用: 1$ curl --compressed -I -H 'If-None-Match: "018b8b0ecb632aab770af328f043b119...从理论上讲,CDN 会维护给定资源的版本信息,因此将能够验证 etag 值的新鲜度。由浏览器决定 etag 是否陈旧。

1.3K10

使用ETag和Expires调优web服务器性能

5、Etag和Expires 如果服务器端同时设置了Etag和Expires时,Etag原理同样,即与Last-Modified/Etag对应的HttpRequest Header:If-Modified-Since...Etag之后,服务器才能返回304. 6、Last-Modified和Etag Last-Modified 和ETags请求的http报头一起使用,服务器首先产生 Last-Modified/Etag标记...也要先查看是否支持了mod_expire模块, 下面的设置是让URI中所有images目录下的文件1小时后过期; expire.url = ( “/images/” => “access 1 hours” ) 下面是让作用于...expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)。...inode作为Etag etag.use-mtime: 是否使用文件修改时间作为Etag etag.use-size: 是否使用文件大小作为Etag static-file.etags: 是否启用Etag

83020

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券