frontend caching - php day, italy, 2011
DESCRIPTION
You’ve used all the server-side caching tricks in the book: memcache, APC, database cache and so on to squeeze every millisecond out, and now your site is as fast as it will ever get. Well guess again! These technologies are caching and creating the HTML which, if they done correctly, is only 10 – 20% of the user response time, so there is a lot of room for improvement. Learn how to optimize your JavaScript, CSS, Images, Cookies and a whole slew of other things that make frontend caching a magical place.TRANSCRIPT
![Page 1: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/1.jpg)
Frontend Caching
Helgi Þormar ÞorbjörnssonPhpDay, Italy, Verona, 14th May 2011
Saturday, 14 May 2011
![Page 2: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/2.jpg)
Who am I?
Saturday, 14 May 2011
![Page 3: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/3.jpg)
Who am I?
VP of Engineering at Orchestra.io
Saturday, 14 May 2011
![Page 4: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/4.jpg)
Who am I?
VP of Engineering at Orchestra.io
Developer at PEAR
Saturday, 14 May 2011
![Page 5: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/5.jpg)
Who am I?
VP of Engineering at Orchestra.io
Developer at PEAR
From Iceland
Saturday, 14 May 2011
![Page 6: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/6.jpg)
Who am I?
VP of Engineering at Orchestra.io
Developer at PEAR
From Iceland
@h on Twitter
Saturday, 14 May 2011
![Page 7: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/7.jpg)
Pareto Principle
20% 80%
Saturday, 14 May 2011
![Page 8: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/8.jpg)
20% 80%
80 / 20 Rule
20% of the population receives 80% of the income
Saturday, 14 May 2011
![Page 9: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/9.jpg)
20% 80%
80 / 20 Rule
20% of causes produce 80% of the effects
Saturday, 14 May 2011
![Page 10: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/10.jpg)
80% of response time is
spent downloading resources
Saturday, 14 May 2011
![Page 11: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/11.jpg)
4 Rules of Web Performance
Saturday, 14 May 2011
![Page 12: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/12.jpg)
Weight
Time
Processing
Perception
Saturday, 14 May 2011
![Page 13: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/13.jpg)
Perception
Saturday, 14 May 2011
![Page 14: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/14.jpg)
Make people think your site is fast
Saturday, 14 May 2011
![Page 15: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/15.jpg)
When people can interact with the site
Saturday, 14 May 2011
![Page 16: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/16.jpg)
Saturday, 14 May 2011
![Page 17: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/17.jpg)
“It all depends on how we look at things, and not how
they are in themselves.”
- Carl G. Jung
Saturday, 14 May 2011
![Page 18: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/18.jpg)
50% of users arrive
on an empty cache
Perception
Saturday, 14 May 2011
![Page 19: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/19.jpg)
Perception
Empty Cache Full Cache28.0K 1 HTML Document
1.9K 1 Style Sheet File
59.5K 4 Javascript Files
78.7K 24 Images
168.1K Total Size
30 HTTP Requests
2.4s Response Time
28.0K 1 HTML Document
0.1K 2 Images
28.1K Total Size
3 HTTP Requests
0.9s Response Time
Saturday, 14 May 2011
![Page 20: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/20.jpg)
Weight
Saturday, 14 May 2011
![Page 21: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/21.jpg)
HTTP Requests
Saturday, 14 May 2011
![Page 22: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/22.jpg)
HTTP Requests
Less is more
Saturday, 14 May 2011
![Page 23: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/23.jpg)
HTTP Requests
Less is more
Fewer HTTP Requests
Saturday, 14 May 2011
![Page 24: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/24.jpg)
HTTP Requests
Less is more
Fewer HTTP Requests
Easy to improve on
Saturday, 14 May 2011
![Page 25: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/25.jpg)
Cookies
Saturday, 14 May 2011
![Page 26: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/26.jpg)
Cookies
Sent with static content
Saturday, 14 May 2011
![Page 27: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/27.jpg)
Cookies
Sent with static content
Slow upstream speed
Saturday, 14 May 2011
![Page 28: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/28.jpg)
Cookies
Sent with static content
Slow upstream speed
Big cookies
Saturday, 14 May 2011
![Page 29: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/29.jpg)
Experiment Time!
Cookie Size Response Time (Delta)
0 bytes 78 ms ( 0 ms)
500 bytes 79 ms ( +1 ms)
1000 bytes 94 ms (+16 ms)
1500 bytes 109 ms (+31 ms)
2000 bytes 125 ms (+47 ms)
2500 bytes 141 ms (+63 ms)
3000 bytes 156 ms (+78 ms)
Saturday, 14 May 2011
![Page 30: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/30.jpg)
Experiment Time!
Cookie Size Response Time (Delta)
0 bytes 78 ms ( 0 ms)
500 bytes 79 ms ( +1 ms)
1000 bytes 94 ms (+16 ms)
1500 bytes 109 ms (+31 ms)
2000 bytes 125 ms (+47 ms)
2500 bytes 141 ms (+63 ms)
3000 bytes 156 ms (+78 ms)
Saturday, 14 May 2011
![Page 31: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/31.jpg)
Experiment Time!
Cookie Size Response Time (Delta)
0 bytes 78 ms ( 0 ms)
500 bytes 79 ms ( +1 ms)
1000 bytes 94 ms (+16 ms)
1500 bytes 109 ms (+31 ms)
2000 bytes 125 ms (+47 ms)
2500 bytes 141 ms (+63 ms)
3000 bytes 156 ms (+78 ms)
Saturday, 14 May 2011
![Page 32: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/32.jpg)
Cookies
Saturday, 14 May 2011
![Page 33: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/33.jpg)
Cookies
Saturday, 14 May 2011
![Page 34: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/34.jpg)
Cookies
Remove unnecessary cookies
Saturday, 14 May 2011
![Page 35: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/35.jpg)
Cookies
Remove unnecessary cookies
Appropriate domain level
Saturday, 14 May 2011
![Page 36: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/36.jpg)
Cookies
Remove unnecessary cookies
Appropriate domain level
Keep size low
Saturday, 14 May 2011
![Page 37: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/37.jpg)
Cookies
Remove unnecessary cookies
Appropriate domain level
Keep size low
Set Expires
Saturday, 14 May 2011
![Page 38: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/38.jpg)
Parallel Downloads
Saturday, 14 May 2011
![Page 39: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/39.jpg)
Parallel Downloads
Be aware of max connection limits
Saturday, 14 May 2011
![Page 40: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/40.jpg)
Parallel Downloads
Be aware of max connection limits
CNAME to point multiple sub domains to the same IP
Saturday, 14 May 2011
![Page 41: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/41.jpg)
Parallel Downloads
Be aware of max connection limits
CNAME to point multiple sub domains to the same IP
Saturday, 14 May 2011
![Page 42: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/42.jpg)
Parallel Downloads
Borrowed from BrowserScope.org
Saturday, 14 May 2011
![Page 43: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/43.jpg)
Parallel Downloads
Borrowed from BrowserScope.org
Saturday, 14 May 2011
![Page 44: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/44.jpg)
Parallel Downloads
One domain = 2 Parallel connections
Saturday, 14 May 2011
![Page 45: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/45.jpg)
Parallel Downloads
HTML
Image
Image
Image
Image
Image
Image
Image
Image
0.4 0.8 1.2 1.6 2 2.4 Secs
One domain = 2 Parallel connections
Saturday, 14 May 2011
![Page 46: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/46.jpg)
Parallel Downloads
HTML
Image
Image
Image
Image
Image
Image
Image
Image
0.4 0.8 1.2 1.6 2 2.4 Secs
Two domains = 4 Parallel connections
Saturday, 14 May 2011
![Page 47: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/47.jpg)
Parallel Downloads
Too many hostnames can cause complications
Saturday, 14 May 2011
![Page 48: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/48.jpg)
Parallel Downloads
Too many hostnames can cause complications
2 – 4 sub domains is a good average
Saturday, 14 May 2011
![Page 49: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/49.jpg)
Combine Files
Combining 6 scripts into 1 eliminates 5 requests
Saturday, 14 May 2011
![Page 50: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/50.jpg)
Combine Files
Combining 6 scripts into 1 eliminates 5 requests
Challenges: develop as separate modules combinations vs. loading more than needed
Saturday, 14 May 2011
![Page 51: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/51.jpg)
Javascript
Doesn’t comply with parallel download rules
Saturday, 14 May 2011
![Page 52: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/52.jpg)
Javascript
HTML
JS
Image
Image
Image
Image
Image
Image
Image
0.4 0.8 1.2 1.6 2 2.4 Secs
Doesn’t comply with parallel download rules
Saturday, 14 May 2011
![Page 53: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/53.jpg)
Javascript
script defer attribute is not a solution
Saturday, 14 May 2011
![Page 54: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/54.jpg)
Javascript
script defer attribute is not a solution
Solution - move them as low in the page as possible
Saturday, 14 May 2011
![Page 55: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/55.jpg)
Processing
Saturday, 14 May 2011
![Page 56: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/56.jpg)
Processing
Saturday, 14 May 2011
![Page 57: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/57.jpg)
Processing
Fake the delivery
Saturday, 14 May 2011
![Page 58: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/58.jpg)
Processing
Fake the delivery
Lazy Loading
Saturday, 14 May 2011
![Page 59: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/59.jpg)
Processing
Fake the delivery
Lazy Loading
Above the fold Loading
Saturday, 14 May 2011
![Page 60: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/60.jpg)
Processing
Fake the delivery
Lazy Loading
Above the fold Loading
Delay Javascript Loading
Saturday, 14 May 2011
![Page 61: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/61.jpg)
Processing
Saturday, 14 May 2011
![Page 62: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/62.jpg)
Processing
Bonus - async attribute
Saturday, 14 May 2011
![Page 63: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/63.jpg)
Processing
Bonus - async attribute
http://www.appelsiini.net/projects/lazyload
Saturday, 14 May 2011
![Page 64: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/64.jpg)
JS Minification
Saturday, 14 May 2011
![Page 65: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/65.jpg)
JS Minification
Crushes the file
Strips out all cruft
Voodoo Magic!
Saturday, 14 May 2011
![Page 66: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/66.jpg)
JS Minfication
UglifyJS
Google Closure
YUI Compressor
Saturday, 14 May 2011
![Page 67: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/67.jpg)
JS Minfication
UglifyJS
Google Closure
YUI Compressor
http://bit.ly/compression-rates
Saturday, 14 May 2011
![Page 68: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/68.jpg)
CSS Minification
YUI Compressor
minifycss.com
OOCSS
Saturday, 14 May 2011
![Page 69: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/69.jpg)
GZipGZip can be used on
Saturday, 14 May 2011
![Page 70: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/70.jpg)
GZip
JS
GZip can be used on
Saturday, 14 May 2011
![Page 71: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/71.jpg)
GZip
JS
CSS
GZip can be used on
Saturday, 14 May 2011
![Page 72: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/72.jpg)
GZip
JS
CSS
XML
GZip can be used on
Saturday, 14 May 2011
![Page 73: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/73.jpg)
GZip
JS
CSS
XML
JSON
GZip can be used on
Saturday, 14 May 2011
![Page 74: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/74.jpg)
GZip
GZip should not be used on
Saturday, 14 May 2011
![Page 75: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/75.jpg)
GZip
Images
GZip should not be used on
Saturday, 14 May 2011
![Page 76: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/76.jpg)
GZip
Images
Document formats
GZip should not be used on
Saturday, 14 May 2011
![Page 77: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/77.jpg)
GZip
Images
Document formats
Already compressed
GZip should not be used on
Saturday, 14 May 2011
![Page 78: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/78.jpg)
404
robots.txt
favicon
Saturday, 14 May 2011
![Page 79: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/79.jpg)
Images
Saturday, 14 May 2011
![Page 80: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/80.jpg)
Images
favicon
Saturday, 14 May 2011
![Page 81: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/81.jpg)
Images
favicon
CSS Sprites
Saturday, 14 May 2011
![Page 82: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/82.jpg)
Images
favicon
CSS Sprites
Saturday, 14 May 2011
![Page 83: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/83.jpg)
Images
Saturday, 14 May 2011
![Page 84: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/84.jpg)
Images
Badly optimised
Saturday, 14 May 2011
![Page 85: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/85.jpg)
Images
Badly optimised
Thumbnails
Saturday, 14 May 2011
![Page 86: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/86.jpg)
Images
Badly optimised
Thumbnails
PNGs compressed up to 50%
Saturday, 14 May 2011
![Page 87: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/87.jpg)
PNG Optimise
OptiPNG
pngwolf
pngcrush
jpegtran
Saturday, 14 May 2011
![Page 88: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/88.jpg)
Time
Saturday, 14 May 2011
![Page 89: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/89.jpg)
SSL
Saturday, 14 May 2011
![Page 90: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/90.jpg)
SSL
Extra roundtrips
Saturday, 14 May 2011
![Page 91: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/91.jpg)
SSL
Extra roundtrips
More resources for servers
Saturday, 14 May 2011
![Page 92: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/92.jpg)
SSL
Extra roundtrips
More resources for servers
Worth it, tho!
Saturday, 14 May 2011
![Page 93: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/93.jpg)
Tread the users’ path
Saturday, 14 May 2011
![Page 94: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/94.jpg)
Tread the users’ path
Test on slower connections
Saturday, 14 May 2011
![Page 95: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/95.jpg)
Tread the users’ path
Test on slower connections
Slow proxies
Saturday, 14 May 2011
![Page 96: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/96.jpg)
Tread the users’ path
Saturday, 14 May 2011
![Page 97: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/97.jpg)
Tread the users’ path
Tables / Phones
Saturday, 14 May 2011
![Page 98: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/98.jpg)
Tread the users’ path
Tables / Phones
Airline connections
Saturday, 14 May 2011
![Page 99: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/99.jpg)
Tread the users’ path
Tables / Phones
Airline connections
Public places
Saturday, 14 May 2011
![Page 100: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/100.jpg)
CDN
Saturday, 14 May 2011
![Page 101: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/101.jpg)
CDN
Single domain
Saturday, 14 May 2011
![Page 102: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/102.jpg)
CDN
Single domain
Smart routing
Saturday, 14 May 2011
![Page 103: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/103.jpg)
CDN
Single domain
Smart routing
Data is closer to end user
Saturday, 14 May 2011
![Page 104: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/104.jpg)
CDN
Saturday, 14 May 2011
![Page 105: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/105.jpg)
CDN
Saturday, 14 May 2011
![Page 106: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/106.jpg)
CDN on a Budget
Saturday, 14 May 2011
![Page 107: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/107.jpg)
CDN on a Budget
S3
Saturday, 14 May 2011
![Page 108: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/108.jpg)
Query vs. Filenamerevisions
Saturday, 14 May 2011
![Page 109: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/109.jpg)
Query vs. Filenamerevisions
Cache far in future
Saturday, 14 May 2011
![Page 110: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/110.jpg)
Query vs. Filenamerevisions
Cache far in future
Revisioning forces downloads
Saturday, 14 May 2011
![Page 111: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/111.jpg)
Query vs. Filenamerevisions
Cache far in future
Revisioning forces downloads
Saturday, 14 May 2011
![Page 112: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/112.jpg)
Query revisions
Saturday, 14 May 2011
![Page 113: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/113.jpg)
Query revisions
Easy and convenient
Saturday, 14 May 2011
![Page 114: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/114.jpg)
Query revisions
Easy and convenient
Usually not recommended
Saturday, 14 May 2011
![Page 115: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/115.jpg)
Query revisions
Easy and convenient
Usually not recommended
Bad proxies are a problem
Saturday, 14 May 2011
![Page 116: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/116.jpg)
Filename revisions
Saturday, 14 May 2011
![Page 117: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/117.jpg)
Filename revisions
Requires more work
Saturday, 14 May 2011
![Page 118: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/118.jpg)
Filename revisions
Requires more work
Recommended
Saturday, 14 May 2011
![Page 119: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/119.jpg)
Filename revisions
Requires more work
Recommended
During build, using md5 hash
Saturday, 14 May 2011
![Page 120: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/120.jpg)
Compromise
Saturday, 14 May 2011
![Page 121: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/121.jpg)
CompromiseCreate a version function
Saturday, 14 May 2011
![Page 122: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/122.jpg)
CompromiseCreate a version function
Put on all resources
Saturday, 14 May 2011
![Page 123: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/123.jpg)
CompromiseCreate a version function
Put on all resources
mod_rewrite magic
Saturday, 14 May 2011
![Page 124: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/124.jpg)
Compromise
http://bit.ly/query_rev_comp
Create a version function
Put on all resources
mod_rewrite magic
Saturday, 14 May 2011
![Page 125: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/125.jpg)
Browser Tools
Saturday, 14 May 2011
![Page 126: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/126.jpg)
Browser Tools
Firebug
Saturday, 14 May 2011
![Page 127: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/127.jpg)
Browser Tools
Firebug
YSlow
Saturday, 14 May 2011
![Page 128: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/128.jpg)
Browser Tools
Firebug
YSlow
PageSpeed
Saturday, 14 May 2011
![Page 129: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/129.jpg)
Browser Tools
Firebug
YSlow
PageSpeed
Chrome Inspector
Saturday, 14 May 2011
![Page 130: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/130.jpg)
Other Tools
Saturday, 14 May 2011
![Page 131: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/131.jpg)
Other Tools
HTTPWatch.com
Saturday, 14 May 2011
![Page 132: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/132.jpg)
Other Tools
HTTPWatch.com
WebPageTest.org
Saturday, 14 May 2011
![Page 133: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/133.jpg)
Other Tools
HTTPWatch.com
WebPageTest.org
HTTPArchive.org
Saturday, 14 May 2011
![Page 134: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/134.jpg)
Other Tools
HTTPWatch.com
WebPageTest.org
HTTPArchive.org
Yottaa.com
Saturday, 14 May 2011
![Page 135: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/135.jpg)
Other Tools
Saturday, 14 May 2011
![Page 136: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/136.jpg)
Other Tools
WonderProxy.com
Saturday, 14 May 2011
![Page 137: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/137.jpg)
Other Tools
WonderProxy.com
pagespeed.googlelabs.com
Saturday, 14 May 2011
![Page 138: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/138.jpg)
Other Tools
WonderProxy.com
pagespeed.googlelabs.com
BrowserScope.com
Saturday, 14 May 2011
![Page 139: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/139.jpg)
Other Tools
WonderProxy.com
pagespeed.googlelabs.com
BrowserScope.com
html5boilerplate.com
Saturday, 14 May 2011
![Page 140: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/140.jpg)
“Knowledge rests not upon truth alone, but upon error also”
- Carl G. Jung
Saturday, 14 May 2011
![Page 141: Frontend caching - PHP Day, Italy, 2011](https://reader033.vdocument.in/reader033/viewer/2022042700/554dad87b4c905ff7a8b4fa6/html5/thumbnails/141.jpg)
Questions?
Joind.in: http://joind.in/2987
Saturday, 14 May 2011