lørdag den 13. februar 2010

Brug komprimering til at goere internettet hurtigere

Hver dag, mere end 99 mennesker år går til spilde på grund af ukomprimeret indhold. Selv om støtte til komprimering er standard i alle moderne browsere, er der stadig mange tilfælde, hvor brugerne af disse browsere, der ikke modtager komprimeret indhold. Dette affald båndbredde og sinker brugernes interaktion med websider.

Ukomprimeret indhold gør ondt alle brugere. For båndbredde-begrænset antal brugere, det tager længere alene om at overføre den ekstra bit. Til bredbåndsforbindelser, men selv de bits, der overføres hurtigt, det tager adskillige returflyvninger mellem klient og server, før de to kan kommunikere på den højest mulige hastighed. For disse brugere er antallet af sejladser er større faktor i bestemmelsen af den tid, der kræves for at indlæse en web-side. Selv for godt tilsluttede brugere disse sejladser ofte tage mellem ti millisekunder, og sommetider langt over en hundrede millisekunder.

I Steve Souders 'bog endnu hurtigere Websteder, præsenterer Tony Gentilcore data, der viser den side indlæsningstid stige med komprimering handicappede. Vi har gengivet resultaterne af de tre højest rangerende steder fra Alexa top 100 med tilladelse her:

Data, med tilladelse fra Steve Souders, \ "Kapitel 9: Going Beyond Gzipping, \" i en endnu hurtigere web-steder (Sebastapol, CA: O'Reilly, 2009), 122.

De data fra Googles websøgning logfiler viser, at den gennemsnitlige page load time for brugere at få ukomprimeret er 25% højere i forhold til tidspunktet for brugerne at få komprimeret indhold. I et randomiseret forsøg, hvor vi tvunget til komprimering for nogle brugere, der ellers ikke ville få komprimeret indhold, vi målte en latenstid forbedring af 300ms. Selv om dette eksperiment ikke indfange hele forskellen, det er nok fordi brugerne at få tvunget kompression har ældre computere og ældre software.

Vi har konstateret, at der er 4 vigtige grunde til, at brugerne ikke får komprimeret indhold: anti-virus-software, browser bugs, webproxyservere, og forkert web-servere. De første tre ændre webanmodning så webserveren ikke ved, at browser kan dekomprimere indhold. Specifikt de fjerne eller mangle Accept-Encoding header, der normalt sendes med hver anmodning.

Anti-virus software kan forsøge at minimere CPU operationer ved at opfange og ændre anmoder om, således at webservere sende tilbage ukomprimeret indhold. Men hvis CPU'en ikke er en flaskehals, er softwaren ikke gør brugerne nogen gunst. Nogle populære antivirusprogrammer interferere med komprimering. Brugerne kan kontrollere, om deres anti-virus software er at blande med komprimering ved at besøge browseren kompression testside på Browserscope.org.

Som standard, 6 Internet Explorer nedgradering til HTTP/1.0 når bag en proxy, og som følge heraf ikke sender Accept-Encoding anmodning header. Nedenstående tabel, der genereres fra Googles websøgning logfiler, viser, at IE 6 udgør 36% af alle søgeresultater, der er sendt uden komprimering. Dette tal er langt højere end andelen af mennesker, der bruger IE 6.

Data fra Google Web Search Logs
Der er en håndfuld af internetudbydere, hvor andelen af ukomprimeret indhold er mere end 95%. Et sandsynligt hypotese er, at enten en internetudbyder eller et firma proxy fjerner eller tilretningsanlaeg Accept-Encoding header. Ligesom med anti-virus software, en bruger, der har mistanke en internetudbyder forstyrrer kompression bør besøge browser kompression testside på Browserscope.org.

Endelig, i mange tilfælde, er brugerne ikke får komprimeret indhold, fordi de websteder, de besøger, ikke kan komprimere deres indhold. Nedenstående tabel viser et par populære websteder, som ikke komprimere alle deres indhold. Hvis disse hjemmesider skulle komprimere deres indhold, kunne de mindske sideindlæsningstid gange med flere hundrede millisekunder for den gennemsnitlige bruger, og endnu mere for brugere på modem-forbindelser.

Data, der genereres ved hjælp af Page Speed
At reducere ukomprimeret indhold, vi alle skal arbejde sammen.
Virksomhedernes IT-afdelinger og de enkelte brugere kan opgradere deres browser, især hvis de bruger Internet Explorer 6 med en proxy. Brug den nyeste version af Firefox, Internet Explorer, Opera, Safari eller Google Chrome vil øge chancerne for at få komprimeret indhold. En nylig leder i IEEE Spectrum lister yderligere grunde - udover komprimering - for opgradering fra IE6.Anti-virus software-leverandører kan begynde at håndtere komprimering korrekt og vil være nødvendigt at stoppe fjerne eller rulning Accept-Encoding header i kommende versioner af deres software.ISPs at bruge en HTTP proxy som strimler eller tilretningsanlaeg Accept-Encoding header kan opgradere, konfigurere eller installere en bedre proxy som ikke forhindrer deres brugere i at få komprimeret content.Webmasters kan bruge Page Hastighed (eller andre lignende værktøjer) til at kontrollere, at indholdet af deres sider er compressed.For flere artikler om fremskyndelse nettet, tjek http://code.google.com/speed/articles/.

Af Arvind Jain, Engineering direktør og Jason Glasgow, Personale Software Engineer