måndag 26 oktober 2009

Lär YSlow känna igen fler CDN-adresser

Många webbutvecklare använder Yahoos Firebug-tillägg YSlow för att utvärdera prestanda på sina sajter och hitta aspekter med förbättringspotential. I princip kan man säga att YSlow utgår från ett visst regelverk och ger en sajt ett betyg inom ett antal olika grenar. Det hela viktas ihop till ett totalbetyg som mer eller mindre säger hur optimerad sajten är (från besökarens perspektiv - prestandaproblem på serversidan kan av naturliga skäl inte tas med i undersökningen).

En gren som de flesta mindre sajter får dras med låga betyg i är "Use a Content Delivery Network (CDN)" - alltså att använda ett särskilt servernätverk specifikt för att leverera statiskt innehåll (som bilder, stylesheets, javascript etc.) till besökaren. Detta är normalt något som större webbplatser utnyttjar men som "vanliga bloggare" och liknande kanske inte kan lägga pengar på. Och om man ändå lägger pengar på det och kör testet igen så är risken stor att man ändå får lägsta möjliga betyg. Varför? Jo, som standard känner YSlow bara till någon enstaka CDN-adress (sannolikt Yahoos egna CDN), och om man skaffat ett konto någon annan stans förstår YSlow inte att det faktiskt är ett CDN. Men det går att rätta till (åtminstone hjälpligt).

Under listan över filer som YSlow tycker ska läggas ut på ett CDN står det "You can specify CDN hostnames in your preferences. See YSlow FAQ for details.". Följer man länken och läser i FAQ:en så ser man att man först ska öppna Firefoxinställningarna genom att skriva about:config i adressfältet och sedan modifiera värdet som ligger under extensions.yslow.cdnHostnames (som är en tom textsträng som standard). Här skriver man alltså in adressen till sitt CDN, startar om Firefox och kan sedan förvänta sig en betydligt bättre poäng av YSlow.

Jag irriterade mig dock på att standardinställningarna inte innehåller ens de vanligaste eller största CDN-adresserna och gjorde därför en liten undersökning. Detta är vad jag kom fram till - jag ger dock inga som helst garantier för att listan stämmer fullt ut.
  • SimpleCDN - simplecdn.net
  • Akamai akamai.net
  • Limelight Networks - llnwd.net
  • Amazon CloudFront - cloudfront.net
  • Rackspace Cloud Files - cdn.cloudfiles.rackspacecloud.com
  • Cachefly - cachefly.com
  • CoralCDN - nyud.net
  • Mirror Image Internet - mirror-image.net
  • Flickr - static.flickr.com
  • Highwinds - hwcdn.net
  • EdgeCast Networks - edgecastcdn.net
  • Facebook - fbcdn.net
  • BitGravity - bitgravity.com
  • AOL - aolcdn.com
  • Google APIs - googleapis.com
  • Google Analytics - google-analytics.com
  • Yahoo APIs - yahooapis.com
  • Cotendo - cotcdn.net
  • Level 3 Communications - level3.net
  • Internap - internap.com
Anger man alla dessa (separerade med komman) borde man kunna få ett mer sanningsenligt resultat när man av nyfikenhet kör YSlow på andra sajter än ens egna. Lägg till nedanstående textsträng under konfigurationsnyckeln extensions.yslow.cdnHostnames i Firefox så finns det i alla fall en teoretisk möjlighet att du kommer börja se några andra betyg än "F" på "Use a Content Delivery Network (CDN)" i YSlow.
simplecdn.net, akamai.net, llnwd.net, cloudfront.net, cdn.cloudfiles.rackspacecloud.com, cachefly.com, nyud.net, mirror-image.net, static.flickr.com, hwcdn.net, edgecastcdn.net, fbcdn.net, bitgravity.com, aolcdn.com, googleapis.com, yahooapis.com, cotcdn.net, level3.net, internap.com, google-analytics.com
Notis: Många större sajter mappar en egen subdomän till sitt CDN, vilket "döljer" leverantören för YSlow. Exempelvis om jag hade, säg, Level 3 som CDN-leverantör så skulle jag kunna peka adressen cdn.fjeldstad.se till mitt konto hos Level 3 (som egentligen kanske har adressen fjeldstad.level3.net) för att få det att se lite snyggare ut om någon kollar min sidkod. YSlow skulle då sannolikt säga att fjeldstad.se inte använder något CDN, trots att jag lagt till level3.net i konfigurationen. Smällar man får ta tycker jag - man kan ju inte gärna sitta och lägga till alla enskilda sajters egna påhittade CDN-adresser.

Inga kommentarer:

Skicka en kommentar