HTTP/2 & Django

ou comment rouler en charrette sur l'autoroute

DjangoCong 2015

Yannick PÉROUX (@k4nar)

Pourquoi un nouveau protocole ?

  • 17 ans d'évolution du web
  • Des pages plus lourdes et plus complexes
  • Apparition des objets connectés

Ce qui ne va pas dans HTTP/1.1

  • Trop sensible au Round Trip Time
  • Ne prend pas assez en compte TCP
  • Pas vraiment de parallélisme

Ce que fait ce développeur front pour contourner les problèmes d'HTTP/1.1 va vous étonner (la N°3 va vous faire recracher votre croissant) !

  • Concaténation des ressources
  • Répartitions sur plusieurs serveurs
  • Inlining des images
  • Sprites

Les origines de HTTP/2

  • 2009: Google débute SPDY
  • 2012: SPDY sert de brouillon pour HTTP/2
  • 2015: HTTP/2 devient un Proposed Standard

 

Un jour la RFC définitive arrivera

Ce qui change dans HTTP/2

Protocole binaire

Ce qui change dans HTTP/2

Multiplexing

Ce qui change dans HTTP/2

Server Push

Ce qui ne change pas dans HTTP/2

  • Les verbes (GET, POST, PUT…)
  • Les codes de statut (200, 404, 418…)
  • Les headers utilisés

Petite démonstration

HTTP/2 aujourd'hui

  • Navigateurs: Firefox, Chrome, Opera, bientôt IE/Edge
  • Serveurs: H2O, IIS, ~Apache, ~Nginx
  • Clients HTTP: Hyper en Python

Ce que ça change pour le front

  • Plus besoin de concaténation
  • Plus besoin de spriting, inlining…
  • Plus besoin de domain-sharding

Ne plus avoir peur de faire une requête !

Ce que ça change pour Django

  • ???
  • ???
  • ???

Ce qui nous bloque

WSGI

Ce que ça pourrait changer pour Django

  • Server push pour les statiques
  • Server push pour les vues
  • Répondre à plusieurs requêtes en même temps

Conclusion

  • HTTP/2 est (presque) là
  • HTTP/2 est cool
  • Django n'est pas prêt
Made with Slides.com