9 Matching Annotations
- Jul 2017
-
www.css88.com www.css88.com
-
如果您正在编写一个模块,并部署到互联网上,该怎么办呢?你需要编写哪种模块风格呢?
需要编写三种不同的模块类型,也就是 全局模块对象、CommonJS和AMD
-
- Jun 2017
-
developer.mozilla.org developer.mozilla.orgHTTP 缓存8
-
HTTP/1.1定义的 Cache-Control 头用来区分对缓存机制的支持情况, 请求头和响应头都支持这个属性。通过它提供的不同的值来定义缓存策略。
Request Header与Response Header都支持这个属性 通过调整Cache-Control头可以做出很多缓存策略:
- 完全不支持
- 不缓存内容
- 私有缓存
- 公共缓存
- 缓存过期时间
-
通常定义Pragma以向后兼容基于HTTP/1.0的客户端
效果同Cache-Control:no-Cache相同,区别在于HTTP响应头不支持这一个属性,不能完全取代Cache-Control属性..
-
在过期时间前,资源缓存是有效的,反之则缓存失效。通过不停抛弃过期的缓存资源以保证资源的实时性。注意,旧的缓存不会被抛弃或者忽略;当发起一个针对旧缓存资源的请求时,会在请求头里带上If-None-Match用来判断缓存是否还有效。如果有效,服务端返回304(Not Modified)和空的body以节省一部分带宽。
为何要有时效性:
- 空间有限
- 服务器可能有更新文件
在缓存有效期过期前,不会去询问服务器资源是否有效..如果缓存过期,就会在请求头上带上If-None-Match来判断缓存是否依旧有效
-
不频繁更新的文件会使用特定的命名方式:在URL后面(通常是文件名后面)会加上版本号。加上版本号后的资源就被视作一个完全新的独立的资源,同时拥有一年甚至更长的缓存过期时长。
-
如果资源请求的响应头里含有ETag, 客户端可以在后续的所有请求的头中带上 If-None-Match 头来验证缓存。
-
私有缓存只能用于单独用户。
私有缓存
-
缓存的种类有很多,其大致可归为两类:私有与共享缓存。
缓存类型
-
当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。
这样可以重用已经获取的资源,提升网站的性能
-