La règle 3 consistait à conserver ses pages web dans le cache en les rendant persistantes.
Cette règle 4 aborde la compression des composants.
Il est évident qu'un composant compressé est chargé plus rapidement s'il est transféré sur le réseau en mode compressé.
Les navigateurs récents indiquent qu'ils supportent la compression, ainsi :
Avec HTTP/1.1, le client web indique qu'il supporte la compression avec l'entête adéquat dans la reqête HTTP
Accept-Encoding: gzip, deflate
Si le serveur web voit cet encodage possible, il peut compresser sa réponse en utilisant une des possibilités du client.
Le serveur web informe le client via l'encodage de la réponse
Content-Encoding: gzip
"Gzip" est la méthode la plus utilisée, et ce avec plus d'efficacité que "deflate", autre méthode possible.
Gzip choisit quel composant compresser, selon leur type. Si les composants pdf, jpeg sont déjà compressés, il est par contre utile de compresser les pages html, mais également les feuilles des styles, les scripts.
Exemple d'utilisation ob_gzhandler pour compresser une css.
Au lieu d'utiliser style.css, c'est style.css.php qui est appelée et qui contient en instructions php :
ob_start ("ob_gzhandler");
ob_start() enclenche la bufferisation de sortie alors que ob_gzhandler est une fonction de callback pour la compression automatique des buffers.
Yslow permet de lister les composants que votre serveur ne compresse pas encore, a vous de compléter la compression sur les pages désirées.