exstatic -- browser cache
TRANSCRIPT
![Page 1: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/1.jpg)
EXSTATIC[example.org’s statics]
![Page 2: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/2.jpg)
![Page 3: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/3.jpg)
![Page 4: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/4.jpg)
![Page 7: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/7.jpg)
GET /Host: example.org
![Page 17: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/17.jpg)
Caching headers
![Page 18: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/18.jpg)
Last-Modified
![Page 19: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/19.jpg)
http://weka.com/iscool
200 OKContent-Type: image/pngLast-Modified: Wed, 22 Feb 2006 04:15:54 GMT
![Page 22: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/22.jpg)
http://weka.com/iscool
GET /foo.pngHost: example.orgIf-Modified-Since: Wed, 22 Feb 2006 04:15:54 GMT
![Page 24: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/24.jpg)
![Page 25: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/25.jpg)
Last-Modifiedallows you to perform
validity checkagainst cache’s resources
—and download only outdated resources
![Page 26: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/26.jpg)
Expires
![Page 27: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/27.jpg)
http://weka.com/iscool
200 OKContent-Type: image/pngExpires: Wed, 30 Mar 2012 19:16:20 GMT
![Page 30: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/30.jpg)
![Page 31: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/31.jpg)
Expiresno request
since it’s cached!or unless explicitly asked (refresh)
![Page 32: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/32.jpg)
Set caching headers aggressively for all static resources.
— google pagespeed
![Page 33: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/33.jpg)
<FilesMatch "\.(gif|jpg|js|css)$"> ExpiresDefault "access plus 1 year"</FilesMatch>
![Page 34: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/34.jpg)
Caching headersTake advantage on client’s
caching mechanism—
and reduce requests
![Page 35: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/35.jpg)
Revving
![Page 36: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/36.jpg)
v2
![Page 39: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/39.jpg)
![Page 40: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/40.jpg)
![Page 41: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/41.jpg)
The most effective solution is to change any links to them; that way, completely new representations will be loaded fresh from the origin server.
— Mark Nottingham
![Page 42: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/42.jpg)
The most effective solution is to change any links to them; that way, completely new representations will be loaded fresh from the origin server.
— Mark Nottingham
trick
![Page 45: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/45.jpg)
http://weka.com/iscool
200 OKContent-Type: image/pngLast-Modified: Thu, 26 Feb 2006 05:19:12 GMT
![Page 47: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/47.jpg)
vX =
![Page 48: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/48.jpg)
foo-{md5}.png
![Page 49: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/49.jpg)
GET /foo-234569103.pngHost: example.org
![Page 50: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/50.jpg)
RewriteEngine onRewriteRule (.*)(-[0-9]+)?(\.[^\.]*)$ $1$3 [L]
![Page 51: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/51.jpg)
http://weka.com/iscool
200 OKContent-Type: image/pngLast-Modified: Thu, 26 Feb 2006 05:19:12 GMT
![Page 52: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/52.jpg)
Revvingeffective brower’s trick to
bypass caching—
or make sure your user has the latest version
![Page 53: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/53.jpg)
Cookieless domain
![Page 58: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/58.jpg)
Cookieless domainMinimize requests!
—but maybe not in the “critical path”
![Page 59: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/59.jpg)
Parallelize downloads
![Page 60: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/60.jpg)
X concurrent connexions maxper hostname
![Page 61: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/61.jpg)
host1 host2 host3 host4
![Page 62: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/62.jpg)
Parallelize downloadsBypass browsers’
concurrent connexions limitation
![Page 63: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/63.jpg)
Infra?
![Page 64: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/64.jpg)
web1 web2 web3 assets
tagA tagA tagA tagA
tagA
tagB tagB tagB tagB
example.org
one.exstatic.orgtwo.exstatic.orgthree.exstatic.orgfour.exstatic.org
exstatic.org
![Page 65: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/65.jpg)
COLOPHON
![Page 66: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/66.jpg)
http://code.google.com/speed/page-speed/docs/rules_intro.html
http://ASIN.cc/~4bAFW
http://developer.yahoo.com/performance/rules.html
http://helveticons.ch/
![Page 67: Exstatic -- browser cache](https://reader031.vdocuments.mx/reader031/viewer/2022030312/58ee05711a28ab0d238b45e5/html5/thumbnails/67.jpg)
Antoine BERNIER (abernier)2011
EXSTATIC[example.org’s statics]