Ich suche wirklich im Web, und ich kann nicht den Grund finden, warum Webbrowser h2c (http / 2 ohne TLS) nicht unterstützen. Irgendeine Idee, geschätzt.
Ein wenig Klärung http / 2 mit https verwendet ALPN (dies wird als h2 bezeichnet). http / 2 mit http benötigt kein ALPN (dies wird h2c genannt), aber fast kein Webbrowser unterstützt es. Warum ist das so?
Ich glaube, dass für viele Ressourcen keine Vertraulichkeit erforderlich ist, obwohl die Authentizität immer gut ist (die digitale Signatur des http-Körpers wird nicht umfassend unterstützt, obwohl es einige private Implementierungen gibt). Wenn Vertraulichkeit nicht benötigt wird, dann ist h2c wirklich eine gute Sache zu haben.
Es gibt mehrere technische Gründe, warum HTTP / 2 viel besser und einfacher über HTTPS zu handhaben ist:
Upgrade:
in reinem HTTP. Und es leidet nicht unter dem POST-Upgrade-Problem, das Sie mit HTTP / 2 im Klartext erhalten. Upgrade: h2c
-Header in Anfragen und antwortet stattdessen mit 400 Fehlern. Es gibt einen Anstoß für mehr HTTPS im Web, die teilweise von einigen der größeren Webbrowser-Entwicklerteams geteilt und bearbeitet werden. Dies macht es als einen Bonus, wenn Features nur mit HTTPS implementiert werden, da sie dann als weitere Motivation für Websites und Dienste dienen, auf HTTPS umzusteigen. Daher haben einige Teams nie (sehr) versucht, HTTP / 2 ohne TLS zu verwenden.
Mindestens ein Browser-Anbieter hat bereits früh seine Absicht zum Ausdruck gebracht, HTTP / 2 für Benutzer zu implementieren und bereitzustellen, die über HTTP (h2c) im Klartext erfolgen. Sie haben dies aufgrund technischer Hindernisse, wie oben erwähnt, nie getan.