Node.jsのhttp2.createServer()がHTTP/1のリクエストを受け付けない仕様のテストコードの場所
ここにあった。
ちゃんと、このテストコードでhttp2.createServer()で立てたサーバーにhttp.get()するとエラーする仕様が書かれていた。
経緯
http2.createSecureServer()だとHTTP/1のリクエストを受け付けるのに、 http2.createServer()だと、HTTP/1のリクエストでエラーするので、対応策がないのか以下のissueで質問させてもらっていた。
また、allowHTTP1: trueが、TypeScriptの型定義で、 http2.createServer()のオプションとして使えるようになってしまっていて、これもまた、対応できているのではないかと思わせる原因にもなっていた。
型定義に関しては以下のPRでallowHTTP1オプションを外す変更をマージしてもらった。そのため@types/nodeを最新にすればこの問題は解決する。
結局、現段階だとHTTPS(TLSを使用)しないと、HTTP/1のリクエストがエラーしてしまう。 後方互換性のことを考えると、HTTP/1をTLSなしでリクエストする機会はあるので、許可できるようになるとありがたい。