Note on HTTP/2

This is me taking note on HTTP/2.

What is the problem with HTTP/1.1 ?

Modern websites requires lots of resources.  And resources are communicated through TCP, and TCP is slow in starting, because it required key value exchanges, three way hands shaking etc.  And we call that RTT (Round Trip Time).

Some uses KeepAlive flag to keep single connection and use this single connection with multiple resources.  But this also have problem, because when one resource takes up time, all resources behind the line gets stuck.

With TCP/1.1, it made it possible to have 6 instances of resources to be handled at same time.

What people try to do within limitation of HTTP/1.1.

6 is better than 1 but demand for resources to travel over http exceed 6 times more, so people had to come up with ways to reduce request over http.

CSS sprite.

Instead of reading multiple CSS files, make it all in one big file, then it needs to travel just once.

Same for JavaScript, instead of reading multiple js files, make it all in one big file, then needs to travel just once.

JavaScript is typically load at the end of whole loading, and it is fine.  Usually you have no problem having javascript at very end.  But CSS usually need to be loaded before HTML files are fully loaded on browser.  Else, you get what’s called FOUS, Flash Of Unstyled Content.

To resolve a part of this problem, you can have separate CSS and JavasScript file that is visible on ATF (above the fold).  Read more at Grunt-Critical-CSS.

Domain Shadowing.

Since the limitation of 6 only applies to one domain origin, you can have different domain for css, js files, images, etc.

For long Google raised this issues and taking measurement at project SPDY.  Since Google isn’t just web service provider but a provider of web browser, they took matter to http level, rather than application level.

so.. What is HTTP/2

Before I explain about all new things about HTTP/2. HTTP/2 transfer resources back and force differently thank HTTP/1.1.

Stream and Frame

Stream is a unit, unit that one resource travel back and force. There was a limitation of 6 stream units at a time for HTTP/1.1 but with HTT`/2 there is no limitation oh number of streams , all streams start and move instantly.  Frame is a frame of object that travels on stream.





Leave a Reply