http2 - Chrome Canary does not offer HTTP/2 -
i'm trying implement small http/2 server in c# in order know protocol. i'm running chrome's latest canary build (v 45.0.2436.5), can't seem client negotiate upgrade http/2 connection.
the rfc states following:
a client makes request "http" uri without prior knowledge support http/2 on next hop uses http upgrade mechanism (section 6.7 of [rfc7230]). client making http/1.1 request includes upgrade header field "h2c" token.
which lead me believe first request should contain upgrade
header, doesn't. request i'm getting:
get / http/1.1 host: 127.0.0.1:1234 connection: keep-alive cache-control: max-age=0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 user-agent: mozilla/5.0 (windows nt 6.3; win64; x64) applewebkit/537.36 (khtml, gecko) chrome/45.0.2436.5 safari/537.36 https: 1 accept-encoding: gzip, deflate, sdch accept-language: de-de,de;q=0.8,en-us;q=0.6,en;q=0.4
can explain me why happens?
thanks in advance answers!
chrome not implement http/1.1 upgrade http/2. implements http/2 on tls via alpn.
the same true firefox.
browsers, in general, have preferred use tls because ietf , web in general moving towards "everything tls". furthermore, using tls gives higher rate of success in connection establishment. these , other reasons no browser far has implemented clear-text upgrade mechanism (that not required specification).
there rumors internet explorer 11 support http/1.1 upgrade http/2, i'm not sure if it's available.
meanwhile there other (command line) tools can perform http/1.1 upgrade http/2.
for java, can use jetty's httpclient explained here.
i'm not aware of http/2 c# clients, perhaps can @ other implementations here.
Comments
Post a Comment