Webmove Blog : De performantie van je website verbeteren - deel 2

De performantie van je website verbeteren - deel 2

Http Compression

speedometer-150In deel 1 van de blogpost reeks over het verbeteren van de performantie van je website heb ik gesteld dat één van de vuistregels van web performantie is om 'zo weinig mogelijk te versturen' van de server naar de browser. Een manier om dit te bewerkstelligen is het gebruiken van http compression op je webserver. Zoals we later zullen zien is dit heel gemakkelijk in te stellen op IIS 7

Wat is http compression?

Http compressie reduceert de omvang van de bestanden die verstuurd worden van de server naar de browser door deze bestanden in een compressie formaat te versturen.

De server analyseert de "Accept Encoding" header in de request van de browser, dit is de manier waarop de browser aan de server te kennen heeft dat het gecompresseerde content kan verwerken. Als de server deze header aantreft zal het in zijn response de content in gecompresseerd formaat versturen. Als de server een request ontvangt waarbij de browser geen gecompresseerd formaat ondersteunt zal het zijn response in een normaal formaat versturen.

Http compression in IIS 7

Http compression is ingebouwd vanaf IIS 7. Als je nog steeds IIS 6 gebruikt kun je deze blogpost raadplegen om http compressie in te schakelen met IIS 6 (http://weblogs.asp.net/owscott/archive/2004/01/12/57916.aspx)

Op IIS 7 is standaard enkel static compression ingeschakeld. Static compression betekent dat IIS bij de eerste request de statische bestanden zoals Javascript en CSS bestanden zal compresseren, en die vervolgens gecached zal bewaren zodat het bij een volgende request deze gecachete en gecompresseerde bestanden kan aanbieden.

Bij Dynamic compression wordt ook dynamische content gecompresseerd. Dat is ten koste van een kleine belasting, ongeveer 1%, op de processor, maar als je zo krap zit aan rekenkracht heb je een groter probleem dan dynamische compressie. Bovendien kun je IIS 7 opdragen om dynamische compressie uit te schakelen van zodra de processor belasting een bepaalde grens overschrijdt.

Http compression demo met IIS 7.5

Om de voordelen van IIS compressie te demonstreren gaan we een kleine test doen. Ik heb een testsite geïnstalleerd en static en dynamic compression op de webserver uitgeschakeld.

Als ik deGoogle Page Speed test uitvoer op de homepage, krijg ik een Page Speed score van 76/100 (zie afbeelding 1). De rode indicator geeft aan compressie een kritische factor voor de performantie is:

"If you compress your files with gzip, their filesize will be decreased with 104.4 KiB (a gain of 71%)"

page-speed-compression-off-600

Afbeelding 1 Met http compression uitgeschakeld, bedraagt de  Page Speed score 76/100

Voer de volgende stappen uit om compression in te schakelen in IIS:

  1. Open IIS 7.5
  2. Kies je website in de boomstructuur
  3. Dubbelklik op 'Compression' in het Features pane
  4. Vink zowel 'enable static content compression' als 'enable dynamic content compression'  aan (zie afbeelding 2)
  5. Klik  'apply' in het Actions Pane om de aanpassingen op te slaan

iis-compression

Afbeeling 2 Static en dynamic content compression inschakelen in IIS 7.5

Wanneer ik nogmaal de Page Speed test laat uitvoeren levert dit een enorme snelheidswinst op. In plaats van 76/100 krijgt mijn homepage nu een Page Speed score van 91/100  (zie afbeelding 3)

page-speed-compression-on-600

Afbeelding 3 Na het inschakelen van http compression op IIS, krijgt de homepage een Page Speed score van 91/100

Conclusie

Het inschakelen van static en dynamic compression in IIS levert een enorme reductie op van de grootte van de bestanden die de server naar de browser stuurt.

Dit resulteert niet enkele in een aanzienlijke performantiewinst, maar ook in een beperkter verbruik van de bandbreedte.

Nu dat alle grote browsers http compressie ondersteunen is er eigelnlijk geen goede reden meer om http compressie niet in te schakelen.

Posted by Anthony Candaele at 14:07
Tags :
Categories :

0 Comments:

Post a comment

Latest comments