Cliente - Nginx HTTP2 - Apache HTTP1.1 parece ser uma violação do RFC

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou Munou. De repente, percebi que meu pull request para o Deno foi mesclado. Que legal!

Problema

Como o título sugere, se isso for uma violação do RFC, o que acontece é
não é possível usar o curl

curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)

Parece que isso acontece quando o HTTP/2 sempre exige comunicação HTTPS, mas o Nginx é usado como proxy reverso para se comunicar via HTTP com um servidor Apache de backend.
Solução alternativa: Desativar HTTP/2
Esse tipo de... problema bobo parece estar surgindo em vários lugares no Github.
Por enquanto, desativei apenas o HTTP/2.

Além disso, nesse estado, pode ou não ser visível em navegadores MacOS/IOS, e há pouquíssima informação sobre como resolver isso. Especificar --http1.1 nas opções do curl funciona por enquanto, mas...

Especificação do HTTP2

De acordo com a especificação do HTTP2, ele pode ser usado tanto com HTTP quanto com HTTPS, mas os navegadores parecem permitir apenas comunicação HTTPS. O que é isso...

Autoassinatura Ineficaz

Tentei comunicação HTTPS temporária com um certificado autoassinado no Apache de backend, e também adicionei
Protocols h2 http/1.1
no backend e ativei o módulo com a2enmod, mas ainda assim não parece funcionar.

Necessidade do HTTP/2

Comparando a velocidade de download de múltiplas imagens com HTTP/1.1 e HTTP/2
Na verdade, eu gostaria de ter suporte adequado para HTTP/2, mas será que é apenas quando necessário...?
Como isso aconteceu ontem, provavelmente preciso investigar um pouco mais devagar. 👀

Related Posts