3 ms·
The standard for h2 may not have required it, but practically it was required. There are middleboxes on the internet that assume any traffic over port 80 is htt
by rgbrenner 8y ago
The standard for h2 may not have required it, but practically it was required. There are middleboxes on the internet that assume any traffic over port 80 is http 1.1, and will destroy/interfere/break non-1.1 traffic. There are also servers that will respond with a 400 error if they see an unrecognized protocol in the upgrade header. This is why actual data shows h2 has a higher success rate when sent over tls.
IIRC MS/IE wanted to implement it, but they backed off because of these issues
Asking browsers to implement h2c is asking them to make their browsers flakier... their users would see a higher connection error rate... which the user WOULD attribute to their browser, especially if they open the same URL in another browser without h2c and it works.
Using the upgrade header instead of alpn is slower anyway.