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.
Instead of reading multiple CSS files, make it all in one big file, then it needs to travel just once.
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.
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.