HTTP/2, SPDY et NGINX

Suite à la présentation HTTP/2 de David Delabassee au Ch’ti JUG, je me suis dit qu’il était peut-être temps de m’intéresser à l’implémentation du protocole côté serveur web.

En effet, le protocole permet notamment d’optimiser les connexions et les échanges avec le serveur; avec mon petit Raspberry Pi et ma petite connexion ADSL, une petite bouffée d’oxygène peut être appréciable.

NGINX et HTTP/2

J’utilise le serveur NGINX pour le blog. NGINX supporte HTTP/2 à partir de la version 1.9.5 (branche mainline de NGINX). Pour l’activer, c’est très simple, dans la configuration nginx, modifiez la définition de votre serveur de la manière suivante :

server {
    listen 443 ssl http2;
...

Note importante : Il faut être en SSL pour que HTTP/2 soit activable (de toutes façons, la majorité des navigateurs nécessitent une connexion HTTPs pour le supporter).

De mon côté, j’utilise la version stable de NGINX et n’ai donc pas encore accès à HTTP/2, je me suis donc dirigé vers son ancêtre en attendant mieux : SPDY.

De la même manière l’activation est très simple :

server {
    listen 443 ssl spdy;
...

Et ça fonctionne !!

Un bémol tout de même : les implémentations NGINX de HTTP/2 et NGINX ne supportent pas le server push.

Pour référence et pour ceux qui ne connaissent pas HTTP/2, voici les slides de la présentation de David Delabassee :

HTTP/2 comes to Java from David Delabassee

Et un bonus : une extension permettant d’afficher le statut de connexion HTTP/2 sous Google Chrome.