web-dev-qa-db-fra.com

gzip_http_version 1.1; dans Nginx, en utilisant HTTP / 2

Dans un bloc de serveur Nginx d'un site destiné à fonctionner avec HTTP/2, j'ai déjà vu ceci:

gzip_http_version 1.1;

Cela peut-il créer un conflit avec certains paquets envoyés via HTTP/2?

Je ne comprends pas cette directive Gzip et par conséquent, je ne peux pas dire si les paquets HTTP/2 pourraient en être affectés.

4
JohnDoea

gzip_http_version est la version minimale du protocole HTTP de la demande (provenant du client) nécessaire pour compresser la réponse du serveur. La valeur par défaut est 1.1.

Par conséquent, aucun agent d'utilisateur qui envoie une demande à l'aide du protocole version 1.0 ne recevra la réponse compressée du serveur; la réponse irait telle quelle. Notez que le fait de définir la valeur sur 1.1 serait probablement très dommageable pour un très petit sous-ensemble de la foule (probablement quelqu'un avec Win XP, qui n'est plus pris en charge maintenant BTW), le cas échéant.

Pour répondre à ta question:

Cela peut-il créer un conflit avec certains paquets envoyés via HTTP/2?

Non, car nginx traiterait les demandes différemment en fonction de la valeur de la variable $server_protocol (une parmi HTTP/1.0, HTTP/1.1, HTTP/2.0).


Remarque: en tant qu'entité Transfer-Encoding n'est pas prise en charge dans HTTP/1.0, vous ne devez pas définir gzip_http_version à 1.0. Sinon, vous n'obtiendrez pas de keepalives car l'en-tête Content-Length n'est pas défini lorsque gzip_http_version est utilisé; HTTP/1.1 résout ce problème en utilisant l'en-tête Transfer-Encoding: chunked.

6
heemayl