SPDY - Clean Slate HTTP About SPDY o What is SPDY o Goals o Features About HTTP o Simple HTTP o Pipelining for cuncurrency o Pipelining doesn’t help SPDY in a nutshell o Multiplexed Requests o Prioritized Requests o Compressed Headers o Server Push & Server Hint
About SDPY : What is SPDY o An open networking protocol o Developed at Google o Trademark of Google(not an acronym) o Started over 3 years ago o A protocol to Reduce latency
About SPDY: Goals Around 50%deduction in page load time Concurrent HTTP requests across a single TCP Reduce band width
About SPDY: Features Always operates on Transport Layer Security (TLS). Transport Layer Security (TLS) is the next version of Secure Sockets Layer (SSL). SPDY applies only to websites written with HTTPS.
SPDY - Clean Slate HTTP About SPDY o What is SPDY o Motivation o Features About HTTP o Simple HTTP o Pipelining for cuncurrency o Pipelining doesn’t help SPDY in a nutshell o Multiplexed Requests o Prioritized Requests o Compressed Headers o Server Push & Server Hint
About Http: Simple Http 1 Open a connection 2 Send a request 3 Receive a response 4 Repeat request and response 5 Close the connection, and done Single request per connection
About HTTP : Pipelining for cuncurrency
About Http: “Pipelining" doesn't help FIFO queue HOL(head of the line) block Additional round trips for connection setup Slow-start delays Waiting for the first response to be complete : Performance Loss
Solution…
SPDY - Clean Slate HTTP About SPDY o What is SPDY o Motivation o Features About HTTP o Simple HTTP o Pipelining for cuncurrency o Pipelining doesn’t help SPDY in a nutshell o Multiplexed Requests o Prioritized Requests o Compressed Headers o Server Push & Server Hint
SPDY in a nutshell One TCP connection Multiplexed Prioritized Headers compressed Server initiated stream
SPDY : Multiplexed requests SPDY allows for unlimited concurrent streams over a single TCP connection There is no limit to the number of requests that can be issued concurrently over a single SPDY connection
SPDY: Prioritized Requests Not all requests are equal! Allow clients to mark priority on each resource server best effort to deliver
SPDY: Compressed Headers Average request /response header: ~600bytes No compression for headers in HTTP(redundant data) Compressing the headers in SPDY: Save latency and bandwidth compared to HTTP Fewer Packets and bytes transmission Request Headers1 st 2 nd HTTP Request SPDY Request379.4 (55%)68.6 (10%) Response Headers1 st 2 nd HTTP Response SPDY Response202.0 (45%)69.2 (17%)
Server push and server hint Server Push: Server pushes a resource directly to the client without the client asking for the resource. Save 1 round-trip It is wasteful, if the resource is in cache Server Hint: Server can notify the client of a resource that will be needed before the client can discover it. Early discovery of critical resources Allow cache validation One round-trip between client and server
Results in Diagrams
Page Load Time as Latency Decreases
Page Load Time - Http vs SPDY
Thank you! Looking forward to a fantastic HTTP/2.0!
Resources: SPDY: An experimental protocol for a faster web A Methodology to Derive SPDY’s Initial Dictionary for Zlib The Chromium Project:SPDY Protocol HTTP Pipelining