אופטימיזציה של יעילות התוכן

Ilya Grigorik
Ilya Grigorik

אפליקציות האינטרנט שלנו ממשיכות לגדול בהיקף, בשאיפות ובתכונות שלהן – וזה דבר טוב. עם זאת, ההתקדמות הבלתי פוסקת לעבר אינטרנט עשיר יותר מניעה מגמה נוספת: כמות הנתונים שכל אפליקציה מורידה ממשיכה לגדול בקצב קבוע. כדי לספק ביצועים מעולים, אנחנו צריכים לבצע אופטימיזציה של כל בייט.

איך נראית אפליקציית אינטרנט מודרנית? HTTP Archive יכול לעזור לנו לענות על השאלה הזו. במסגרת הפרויקט, המערכת עוקבת אחרי האופן שבו האינטרנט בנוי על ידי סריקה תקופתית של האתרים הפופולריים ביותר (יותר מ-300,000 אתרים מרשימת מיליון האתרים המובילים של Alexa), ומתעדת ומצטברת ניתוחים לגבי מספר המשאבים, סוגי התוכן ומטא-נתונים אחרים לכל יעד בנפרד.

מגמות ב-HTTP Archive

האחוזון ה-50 אחוזון 75 האחוזון ה-90
HTML ‫13KB ‫26KB ‫54KB
תמונות 528 KB 1,213KB ‫2,384KB
JavaScript ‫207KB 385 KB 587 KB
CSS ‫24KB ‫53KB 108 KB
אחר 282 KB 308 KB 353 KB
סה"כ 1,054KB ‎1,985KB 3,486KB

הנתונים שלמעלה משקפים את מגמת הגידול במספר הבייטים שהורדו ביעדים פופולריים באינטרנט בין ינואר 2013 לינואר 2014. כמובן שלא כל אתר גדל באותו קצב או דורש את אותה כמות נתונים, ולכן אנחנו מדגישים את האחוזונים השונים בהתפלגות: האחוזון ה-50 (חציון), האחוזון ה-75 והאחוזון ה-90.

אתר חציוני בתחילת 2014 מורכב מ-75 בקשות שמסתכמות ב-1,054KB של בייטים שהועברו, והמספר הכולל של הבייטים (והבקשות) גדל בקצב קבוע במהלך השנה הקודמת. זה לא אמור להפתיע, אבל יש לזה השלכות חשובות על הביצועים: נכון, מהירות האינטרנט הולכת וגדלה, אבל בקצב שונה במדינות שונות, והרבה משתמשים עדיין כפופים למכסות נתונים ולתוכניות יקרות של חיוב לפי שימוש – במיוחד בנייד.

בניגוד לאפליקציות למחשב, אפליקציות אינטרנט לא דורשות תהליך התקנה נפרד: מזינים את כתובת ה-URL והאפליקציה פועלת – זהו מאפיין מרכזי של האינטרנט. עם זאת, כדי שזה יקרה אנחנו צריכים לעיתים קרובות לאחזר עשרות, ולפעמים מאות, משאבים שונים, שכולם יכולים להצטבר למגה-בייטים של נתונים, וצריכים להתחבר יחד תוך מאות אלפיות השנייה כדי לאפשר את חוויית הגלישה המיידית שאנחנו שואפים אליה.

לא קל ליצור חוויית גלישה מיידית באינטרנט לאור הדרישות האלה, ולכן חשוב מאוד לבצע אופטימיזציה של יעילות התוכן: לבטל הורדות מיותרות, לבצע אופטימיזציה של קידוד ההעברה של כל משאב באמצעות טכניקות דחיסה שונות, ולהשתמש במטמון כשאפשר כדי לבטל הורדות מיותרות.