2. SELF-INTRODUCTION
• Researching cutting-edge web technology
• Especially communication APIs, in preference
• Google API Expert (HTML5)
• Microsoft Most Valuable Professional(IE)
• Twitter: @komasshu
• Blog: http://blog.livedoor.jp/kotesaki
3. ACTIVITIES http://www.html5rocks.com/en/tutorials/speed/quick/
(LOVE SPEED!!)
Referred!!, But… orz
(I know I should do feedback)
http://wakachi.komasshu.info/
7. EVOLUTION OF
WEB SERVICES
1991 2012
http://www.ibarakiken.gr.jp/www/index.html http://www.ocn.ne.jp/ https://www.facebook.com/
8. ALSO COMMUNICATION
MODEL HAS CHANGED
1991 2012
http://www.ibarakiken.gr.jp/www/index.html http://www.ocn.ne.jp/ https://www.facebook.com/
Multiple resources
Single resource +
Multiple resources Bi-directional
10. ISSUE IN HTTP
Response time become slower when
required resources increased.
And each transaction has
overlapped headers.
11. CURRENT PRACTICE
In RFC2616 (HTTP/1.1),
Concurrent tcp connections
# of concurrent tcp connections
2
(IE6, 7 keeps the number)
Modern Browser : over 6
More numbers… multi-domain
e.g. Gmap use mts0.google.com & mts1
for map, but these are same server
(CNAME = mts.l.google.com)
12. BUT STILL…
• Concurrent tcp means
• Abuse of server resources
• intermediary‟s resources, as well
• e.g. NAT, proxy, FireWall…
• Need additional coding to keep
order.
14. SPDY
• Who proposed?
• Google
• Goal
• SPEED!!
• First POST in ML(spdy–dev)
• Nov 17th, 2009
• Current version
• SPDY 2
• Services with SPDY
• Almost Google‟s site
• Twitter
• Supported Browser
• Google Chrome
• Mozilla Firefox
• Amazon Silk Browser
• Servers
• Apache, nginx, jetty, node, …
http://www.chromium.org/spdy
15. FEATURES
Current practice SPDY
• Multiplexing request under single tcp
• Header compression
• Server push feature
16. [BTW] SPDY NEEDS TLS
TUNNELING UNDER
COMMON ENV
In real internet, there are lots of devices verifing http protocol.
Load
Fire
proxy balan
wall
cer
Block!!
Raw spdy transaction
Can‟t touch
TLS tunneling
17. [BTW] HOW TO SWITCH
SPDY AND HTTPS
• tls NPN : Next Protocol Negotiation
• Under non-SPDY browser, HTTPS is automatically used;-)
Client Hello
Server Hello
spdy2 http/1.1
http://tools.ietf.org/id/draft-agl-tls-nextprotoneg-03.html
18. MULTIPLEX
Each streams are treated as key-value pair.
TLS tunneling
SPDY_SESSION_SYN_STREAM
req 5 req 3 req 1
1 res 5 res 3 res
SPDY_SESSION_SYN_REPLY
20. MULTIPLEX : TWO
LAYERS
• Split into two parts
• Framing layer
• In this layer, doesn‟t care about value
• Value is just a binary data
• HTTP layer
• How to fit HTTP protocol into SPDY‟s framing layer as
binary data.
21. [REF] SYN_REPLY
Framing layer
key
HTTP layer
(HTTP header messages are
also treated as key-value pair )
value
Compressed
(binary)
http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2
22. HEADER
COMPRESSION
Framing layer
As described in previous slide
key
HTTP layer
(HTTP header messages are
also treated as key-value pair )
value
Compressed
(binary)
http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2
23. SERVER PUSH
• It’s just for SPEED!!
• Don‟t be considered as common push service
w/o server push w/ server push
index.html index.html
<head>〜</head>
css, js
Send css, js, image etc.
<body>〜</body> w/o client‟s request
image, video, etc.
24. SERVER PUSH [CONT]
Used when
required.
index.html
(e.g. HTML
parser, ajax
request)
Just
cached
Send css, js, image etc.
w/o client‟s request
Cache
29. NO CODING REQUIRED
(W/O SERVER PUSH)
Just change / update your middleware is enough.
Contents layer is completely
html css js php
independent w/ SPDY.
Document root
Apache + mod_spdy
Nginx + patch
Server
engine
30. GAE IS NICE PLACE
TO TRY SPDY
• Common manners of deploying on GAE is enough.
• All you need is changing protocol schema (http => https)
Quite easy!!
Channel API also works with
http://blog.livedoor.jp/kotesaki/archives/1802324.html
34. IS IT THE RIGHT CHOICE
FOR LARGE DATA?
Use SPDY for large resources … right solution?
• encryption cost
• CDN doesn‟t work
• Block short data transfer ( really SPDY/3 solve it? )
Netwok loss !!
1 Large data (image, video, …) 3 json
Short data is often high priority than large.
35. INFORMATIVE ENTRY
Amazon's Silk Browser Acceleration Tested: Less Bandwidth
Consumed, But Slower Performance
http://www.anandtech.com/show/5139/amazons-silk-browser-tested-less-
bandwidth-consumed-but-slower-performance
37. STUDY FROM
CURRENT PRACTICE
Google map’s image is transported by
another SPDY connection.
Twitter doesn’t use SPDY for user’s icon
transaction.
“with research, Find best practice”
41. MOST IMPORTANT
THING
“Rich user experience in
adequate system cost.”
• Goal is not so simple, but we should
achieve
• Not only SPDY, but also other method
should be considered together.