Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Upgrading the Web - Driving Support For New Sta...
Search
Jonathan Klein
November 15, 2013
Technology
1
410
Upgrading the Web - Driving Support For New Standards
I gave this talk at Velocity London 2013.
Slides and links available at jkle.in/upgrade
Jonathan Klein
November 15, 2013
Tweet
Share
More Decks by Jonathan Klein
See All by Jonathan Klein
Cognitive Biases in Engineering Organizations - Craft Conf
jklein
15
430
Demystifying SPDY and HTTP/2
jklein
1
630
Demystifying SPDY and HTTP/2
jklein
2
1.1k
Cognitive Biases in Engineering Organizations
jklein
4
2k
Composer: From Beginner to Expert
jklein
1
980
Upgrading the Web: Boston Web Performance Meetup
jklein
1
300
Upgrading the Web: Driving Support For New Standards
jklein
1
810
Northeastern Lunch and Learn
jklein
0
260
Profiling PHP With XHProf
jklein
1
1k
Other Decks in Technology
See All in Technology
extension 現場で使えるXcodeショートカット一覧
ktombow
0
210
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
510
Pure Goで体験するWasmの未来
askua
1
180
PLaMo2シリーズのvLLM実装 / PFN LLM セミナー
pfn
PRO
2
1k
AWS 잘하는 개발자 되기 - AWS 시작하기: 클라우드 개념부터 IAM까지
kimjaewook
0
110
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
6
3.6k
GA technologiesでのAI-Readyの取り組み@DataOps Night
yuto16
0
270
OCI Network Firewall 概要
oracle4engineer
PRO
1
7.8k
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
160
Azure Well-Architected Framework入門
tomokusaba
1
320
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
200
o11yで育てる、強い内製開発組織
_awache
3
120
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
Typedesign – Prime Four
hannesfritz
42
2.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Bash Introduction
62gerente
615
210k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
It's Worth the Effort
3n
187
28k
Why Our Code Smells
bkeepers
PRO
339
57k
Documentation Writing (for coders)
carmenintech
75
5k
Transcript
Upgrading the Web Driving Support For New Standards Velocity London
2013 Jonathan Klein @jonathanklein Friday, November 15, 13
Slides, Links jkle.in/upgrade Friday, November 15, 13
About Me Friday, November 15, 13
About Me • Performance Engineer At Etsy Friday, November 15,
13
About Me • Performance Engineer At Etsy • I write
the Etsy Site Performance Reports Friday, November 15, 13
About Me • Performance Engineer At Etsy • I write
the Etsy Site Performance Reports • Organize Boston Web Perf Meetup Group Friday, November 15, 13
Etsy Stats Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
A Story Friday, November 15, 13
A Story From the Future Friday, November 15, 13
Friday, November 15, 13
http://goo.gl/Uj3w9y Friday, November 15, 13
Things You Learned Friday, November 15, 13
Things You Learned • Hop Hints Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints Friday,
November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
What Should You Implement? Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
HTTP Origin/Hop Hints Friday, November 15, 13
HTTP Origin/Hop Hints • IETF Draft Friday, November 15, 13
HTTP Origin/Hop Hints • IETF Draft • HTTP Response Header
Friday, November 15, 13
HTTP Origin/Hop Hints • IETF Draft • HTTP Response Header
•OH: a,b=6,c Friday, November 15, 13
HTTP Origin/Hop Hints • IETF Draft • HTTP Response Header
•OH: a,b=6,c • Tells the browser about server capabilities Friday, November 15, 13
HTTP Origin/Hop Hints Friday, November 15, 13
HTTP Origin/Hop Hints • Small Request Headers Friday, November 15,
13
HTTP Origin/Hop Hints • Small Request Headers • Relative Referers
Friday, November 15, 13
HTTP Origin/Hop Hints • Small Request Headers • Relative Referers
• Omitting Cookies Friday, November 15, 13
HTTP Origin/Hop Hints • Small Request Headers • Relative Referers
• Omitting Cookies • Sharing Connections Friday, November 15, 13
HTTP Origin/Hop Hints • Small Request Headers • Relative Referers
• Omitting Cookies • Sharing Connections • Pipeline Depth Friday, November 15, 13
Reduce Header Size Friday, November 15, 13
Optimize Transfer Friday, November 15, 13
No Content Changes Friday, November 15, 13
Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Client Hints Friday, November 15, 13
Client Hints • IETF Draft Friday, November 15, 13
Client Hints • IETF Draft • HTTP Request Header Friday,
November 15, 13
Client Hints • IETF Draft • HTTP Request Header •CH-DPR:
2.0 Friday, November 15, 13
Client Hints • IETF Draft • HTTP Request Header •CH-DPR:
2.0 • Tells the server about browser capabilities Friday, November 15, 13
Friday, November 15, 13
Will Also Specify Height/Width Friday, November 15, 13
Simplifies Markup Friday, November 15, 13
Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
WebP Friday, November 15, 13
WebP • New image format from Google Friday, November 15,
13
WebP • New image format from Google • 25-34% smaller
than JPEG Friday, November 15, 13
WebP • New image format from Google • 25-34% smaller
than JPEG • Lossless Option Friday, November 15, 13
WebP • New image format from Google • 25-34% smaller
than JPEG • Lossless Option • Alpha Transparency Friday, November 15, 13
WebP • New image format from Google • 25-34% smaller
than JPEG • Lossless Option • Alpha Transparency • Growing adoption Friday, November 15, 13
Friday, November 15, 13
Now We Are Getting Somewhere... Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Key Stats First Run Bytes 576KB Start Render 932ms Speed
Index 1269ms Friday, November 15, 13
Brief Aside: Speed Index Friday, November 15, 13
Friday, November 15, 13
Convert JPEGs to WebP Friday, November 15, 13
Friday, November 15, 13
Key Stats First Run WebP Difference Bytes 576KB 387KB -33%
Start Render 932ms 1019ms +9% Speed Index 1269ms 1278ms <1% Friday, November 15, 13
Friday, November 15, 13
Its Future is Uncertain Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Challenges with WebP Friday, November 15, 13
Challenges with WebP • Worse shareability Friday, November 15, 13
Challenges with WebP • Worse shareability • Increased decoding time
Friday, November 15, 13
Challenges with WebP • Worse shareability • Increased decoding time
• Controversial studies around quality/size Friday, November 15, 13
Challenges with WebP • Worse shareability • Increased decoding time
• Controversial studies around quality/size • No progressive decoding (yet) Friday, November 15, 13
Still a Big Bandwidth Win Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
SPDY/HTTP 2.0 Friday, November 15, 13
SPDY/HTTP 2.0 • Next version of HTTP Friday, November 15,
13
SPDY/HTTP 2.0 • Next version of HTTP • HTTP Multiplexing
Friday, November 15, 13
SPDY/HTTP 2.0 • Next version of HTTP • HTTP Multiplexing
• Header Compression Friday, November 15, 13
SPDY/HTTP 2.0 • Next version of HTTP • HTTP Multiplexing
• Header Compression • Prioritization Friday, November 15, 13
SPDY/HTTP 2.0 • Next version of HTTP • HTTP Multiplexing
• Header Compression • Prioritization • Wide support Friday, November 15, 13
Friday, November 15, 13
No More... Friday, November 15, 13
No More... • Domain Sharding Friday, November 15, 13
No More... • Domain Sharding • Spriting Images Friday, November
15, 13
No More... • Domain Sharding • Spriting Images • Concatenating
Files Friday, November 15, 13
No More... • Domain Sharding • Spriting Images • Concatenating
Files • DataURIs Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Slides, Links jkle.in/upgrade Friday, November 15, 13
Let’s See it in Action Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Before SPDY Friday, November 15, 13
After SPDY Friday, November 15, 13
Key Stats First Run SPDY/ HTTP 2.0 Difference Bytes 387KB
387KB - Start Render 1019ms 972ms -5% Speed Index 1278ms 1108ms -14% Friday, November 15, 13
Friday, November 15, 13
Friday, November 15, 13
Sites Using SPDY Today Friday, November 15, 13
Sites Using SPDY Today • Most (all?) Google Properties Friday,
November 15, 13
Sites Using SPDY Today • Most (all?) Google Properties •
Facebook Friday, November 15, 13
Sites Using SPDY Today • Most (all?) Google Properties •
Facebook • Twitter Friday, November 15, 13
Sites Using SPDY Today • Most (all?) Google Properties •
Facebook • Twitter • You? Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Pre-fetching • Fetch assets for next page • Speeds up
navigation <link rel="prefetch" href="/foo.css"> Friday, November 15, 13
WebPagetest Script logData 0 navigate https://velocity.jkle.in logData 1 navigate https://velocity.jkle.in/product.html
Friday, November 15, 13
Friday, November 15, 13
Key Stats First Run Bytes 85KB Speed Index 479ms CSS
Files 2 JS Files 6 Friday, November 15, 13
Prefetch <link rel="prefetch" href="/prestashop/themes/default/css/product.css"> <link rel="prefetch" href="/prestashop/js/jquery/plugins/fancybox/jquery.fancybox.css"> <link rel="prefetch" href="/prestashop/js/jquery/plugins/fancybox/jquery.fancybox.js">
<link rel="prefetch" href="/prestashop/js/jquery/plugins/jquery.idTabs.js"> <link rel="prefetch" href="/prestashop/js/jquery/plugins/jquery.scrollTo.js"> <link rel="prefetch" href="/prestashop/js/jquery/plugins/jquery.serialScroll.js"> <link rel="prefetch" href="/prestashop/themes/default/js/tools.js"> <link rel="prefetch" href="/prestashop/themes/default/js/product.js"> Friday, November 15, 13
Friday, November 15, 13
Key Stats First Run Pre-fetching Difference Bytes 85KB 50KB -40%
Speed Index 479ms 290ms -40% CSS Files 2 0 -100% JS Files 6 0 -100% Friday, November 15, 13
Friday, November 15, 13
Things You Learned • Hop Hints • Client Hints •
WebP • SPDY/HTTP 2.0 • Pre-fetching Friday, November 15, 13
Browser Support Friday, November 15, 13
Friday, November 15, 13
These Are Still Good Options Friday, November 15, 13
Convincing CDNs Would Be HUGE Friday, November 15, 13
Action Steps Friday, November 15, 13
Action Steps • Implement as much as you can Friday,
November 15, 13
Action Steps • Implement as much as you can •
Speak/blog about challenges Friday, November 15, 13
Action Steps • Implement as much as you can •
Speak/blog about challenges • Ask your CDN for support Friday, November 15, 13
Action Steps • Implement as much as you can •
Speak/blog about challenges • Ask your CDN for support • Report bugs Friday, November 15, 13
Let’s Upgrade The Web Friday, November 15, 13
Thanks! Friday, November 15, 13
@jonathanklein
[email protected]
www.etsy.com/careers Get in Touch Friday, November 15, 13