RFC 7540 – HTTP2
(news.ycombinator.com)
hacker news 裡很在意 http2 在 application layer 重新實作了一次 tcp layer 的功能。但這實在是不是辦法中的辦法。internet 裡可以觸及的地方都是 tcp,改不動。而可以正常通行的 port 也太少了。如果你過 80 port,一堆中間的 NAT/Proxy 都會驗內容是不是正常的 http1 protocol。在 80 port 裡 upgrade 到http2 是不切實際的。
只有 https 443 port,各個網路節點才會放行 (因為無法驗內容)。所以實務上 http2 protocol 只能走 https 才不會被攔下來。有一些網路節點還更狠,它們如果發現 443 port 的開頭不是正常的 TLS handshake,也是會 ban 掉連線。
所以 http2 就得延用 tcp,還有 TLS 加密這樣的前提,然後在 application layer 裡做各種改進。