Concatenate

Compress

Cache

Timothée Carry

  • Consultant Octo Technology
  • Spécialiste en Web Front
  • @pixelastic à l'extérieur

Concatenate

Télécharger moins de fichiers

france.fr

Waterfall france.fr

github.com

Waterfall github.com

Coûts incompressibles

  • TCP Slow-start
  • Overhead SSL
  • Maximum de connections parallèlles

Compress

Télécharger des fichiers plus légers

GZIP ALL TEH THINGS!

GZIP : La formule magique

  • Gain de 66% en moyenne
  • Assets textuels : HTML, CSS, Javascript, XML, JSON
  • Serveur : Apache, Lighttpd, Nginx, IIS
  • Browser : IE5.5+
  • Accept-Encoding:gzip / Content-Encoding:gzip

Apache

<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/javascript" "application/json" \
"text/css" "text/html" "text/xml" [...]
  </IfModule>
</IfModule>

Lighttpd

server.modules += ( "mod_compress" )
compress.filetype  = ("application/javascript", "application/json", \
"text/css", "text/html", "text/xml", [...] )

nginx

gzip on;
gzip_types application/javascript application/json text/css text/html text/xml [...]; 

Cache

Télécharger moins souvent

Fraicheur

  • Date limite de consommation
  • Rapide, pas de requete si encore frais
  • Deux headers

    • Expires: Thu, 04 May 2014 20:00:00 GMT
    • Cache-Control: max-age=3600, must-revalidate

Validation

  • Vérification que le client possède la dernière version

    • Oui : 304 - Not Modified
    • Non: 200 - OK
  • Évite téléchargement inutile
  • Deux couples de headers

    • Last-Modified: Mon, 04 May 2014 02:28:12 GMT / If-Modified-Since
    • ETag: "3e86-410-3596fbbc" / If-None-Match

Un beau dessin

Le cache dans un beau dessin

Invalidation

There are only two hard things in Computer Science: cache invalidation and naming things.
  • Cache max (1 an)
  • Nouvelles urls (timestamp, hash, etc)

    • github2-c9b5fd6520f5ab77dd823b1b2c81ff9c461b1374.css
    • github-14e2a44e296739b8ec8d7763e88ed307a6d424e0.js

Questions ?

Sources