Webbprestanda - Web performance

Webbprestanda avser den hastighet som webbsidor laddas ner och visas i användarens webbläsare . Webbprestationsoptimering (WPO) eller webbplatsoptimering är kunskapsfältet om att öka webbprestanda.

Snabbare nedladdningshastigheter för webbplatser har visat sig öka besökarnas kvarhållande och lojalitet och användarnöjdhet, särskilt för användare med långsam internetanslutning och de som är på mobila enheter . Webbprestanda leder också till mindre data som reser över nätet, vilket i sin tur sänker webbplatsens strömförbrukning och miljöpåverkan. Några aspekter som kan påverka sidhämtningshastigheten inkluderar webbläsar- / servercache, bildoptimering och kryptering (till exempel SSL), vilket kan påverka tiden det tar för sidor att renderas. Webbplatsens prestanda kan förbättras genom tekniker som flerskiktat cache, lättviktsdesign av presentationslagerkomponenter och asynkron kommunikation med serversidans komponenter.

Historia

Under det första decenniet av internetets existens fokuserades förbättring av webbprestanda främst på att optimera webbplatskoden och att driva hårdvarubegränsningar. Enligt boken Web Performance Tuning från Patrick Killelea från 2002 var några av de tidiga teknikerna att använda enkla servlets eller CGI, öka serverminnet och leta efter paketförlust och vidaresändning. Även om dessa principer nu utgör mycket av den optimerade grunden för internetapplikationer, skiljer de sig från den nuvarande optimeringsteorin genom att det var mycket mindre försök att förbättra webbläsarens visningshastighet.

Steve Souders myntade termen "optimering av webbprestanda" 2004. Vid den tidpunkten gjorde Souders flera förutsägelser angående den inverkan som WPO som en "framväxande bransch" skulle ge på nätet, såsom webbplatser som standard är snabba, konsolidering, webbstandarder för prestanda, miljöeffekter av optimering och hastighet som differentierare.

En viktig poäng som Souders gjorde 2007 är att åtminstone 80% av den tid det tar att ladda ner och visa en webbplats kontrolleras av front-end-strukturen. Denna fördröjningstid kan minskas genom medvetenhet om typiskt webbläsarbeteende, liksom om hur HTTP fungerar.

Optimeringstekniker

Webbprestationsoptimering förbättrar användarupplevelsen (UX) när du besöker en webbplats och är därför mycket önskad av webbdesigners och webbutvecklare . De använder flera tekniker som effektiviserar webboptimeringsuppgifter för att minska webbsidans laddningstider. Denna process kallas FEO (Front End Optimization) eller innehållsoptimering. FEO koncentrerar sig på att minska filstorlekar och "minimera antalet begäranden som krävs för att en viss sida ska laddas."

Förutom de tekniker som anges nedan är användningen av ett innehållsleveransnätverk - en grupp proxyservrar spridda över olika platser runt om i världen - ett effektivt leveranssystem som väljer en server för en specifik användare baserat på nätverksnära närhet. Vanligtvis väljs servern med den snabbaste svarstiden.

Följande tekniker används ofta för webboptimeringsuppgifter och används ofta av webbutvecklare:

Webbläsare öppnar separata TCP-anslutningar ( Transmission Control Protocol ) för varje begäran om Hypertext Transfer Protocol (HTTP) som skickas när en webbsida laddas ner. Dessa förfrågningar totalt antalet sidelement som krävs för nedladdning. En webbläsare är dock begränsad till att endast öppna ett visst antal samtidiga anslutningar till en enda värd. För att förhindra flaskhalsar minskas antalet enskilda sidelement med hjälp av resurskonsolidering varigenom mindre filer (t.ex. bilder) buntas ihop till en fil. Detta minskar HTTP-förfrågningar och antalet "tur-retur" som krävs för att ladda en webbsida.

Webbsidor är konstruerade från kodfiler som JavaScript och Hypertext Markup Language (HTML). När webbsidor växer i komplexitet ökar deras kodfiler och därefter laddningstiderna. Filkomprimering kan minska kodfiler med så mycket som 80 procent och därigenom förbättra webbplatsens respons.

Webcaching-optimering minskar serverbelastning , bandbreddsanvändning och latens . CDN använder dedikerad webbcaching- programvara för att lagra kopior av dokument som passerar genom deras system. Senare förfrågningar från cachen kan uppfyllas om vissa villkor gäller. Webbcacher finns antingen på klientsidan (framåtläge) eller webbserversidan (omvänd position) på ett CDN. Webbläsare kan också lagra innehåll för återanvändning via HTTP-cache eller webbcache . Förfrågningar som webbläsare gör skickas vanligtvis till HTTP-cachen för att validera om ett cachat svar kan användas för att uppfylla en begäran. Om en sådan matchning görs uppfylls svaret från cachen. Detta kan vara till hjälp för att minska nätverkslatens och kostnader i samband med dataöverföring. HTTP-cache konfigureras med begäran och svarsrubriker.

Kodminifiering skiljer skillnader mellan koder skrivna av webbutvecklare och hur nätverkselement tolkar kod. Förminskning tar bort kommentarer och extra mellanslag samt crunch-variabelnamn för att minimera kod, vilket minskar filstorlekar med så mycket som 60%. Förutom cachning och komprimering, förlorar komprimeringstekniker med förlust (liknande de som används med ljudfiler) icke-nödvändig rubrikinformation och lägre originalbildkvalitet på många högupplösta bilder. Dessa förändringar, såsom pixelkomplexitet eller färggraderingar, är transparenta för slutanvändaren och påverkar inte märkbart uppfattningen av bilden. En annan teknik är att ersätta vektorgrafik med upplösningsoberoende rastergrafik . Rastersättning är bäst lämpad för enkla geometriska bilder.

Låg laddning av bilder och video minskar den inledande sidans laddningstid, den inledande sidvikten och systemresursanvändningen, som alla har positiva effekter på webbplatsens prestanda. Den används för att skjuta upp initialiseringen av ett objekt till dess att det behövs. Webbläsaren laddar bilderna på en sida eller ett inlägg när de behövs, till exempel när användaren rullar ner på sidan och inte alla bilder samtidigt, vilket är standardbeteendet och tar naturligtvis mer tid.

HTTP / 1.x och HTTP / 2

Eftersom webbläsare använder flera TCP-anslutningar för parallella användarförfrågningar kan trängsel och monopolisering av nätverksresurser uppstå. Eftersom HTTP / 1-förfrågningar kommer med tillhörande omkostnader påverkas webbprestanda av begränsad bandbredd och ökad användning.

Jämfört med HTTP / 1, HTTP / 2

  • är binär istället för text
  • är fullständigt multiplexerat istället för beställt och blockerat
  • kan därför använda en anslutning för parallellism
  • använder huvudkomprimering för att minska omkostnader
  • tillåter servrar att "skjuta" svar proaktivt in i klientcacheminnet

Istället för en webbsajts värdserver används CDN: er tillsammans med HTTP / 2 för att bättre kunna betjäna slutanvändaren med webbresurser som bilder, JavaScript-filer och Cascading Style Sheet (CSS) -filer eftersom CDN: s plats vanligtvis är närmare närhet till slutanvändaren.

Referenser