מה זה CDN ואיך היא מעבירה תוכן לגולשים
CDN, קיצור של Content Delivery Network, היא רשת להפצת תוכן. שרתים במיקומים שונים בעולם שומרים עותקים של קבצי האתר, כגון תמונות, קובצי עיצוב ותסריטים, ומגישים אותם לגולשים. העותקים נשמרים במטמון, כלומר במאגר זמני שמאפשר להשתמש שוב בתוכן שכבר התקבל.
לפי התיעוד הרשמי של Amazon CloudFront, בקשה של גולש מנותבת למיקום בשם edge location, שמספק את זמן ההשהיה הנמוך ביותר. אם התוכן כבר נמצא שם, הוא נמסר מיד. אם לא, הרשת מביאה אותו משרת המקור, שמחזיק את הגרסה המקורית של הקבצים.
השרת שנבחר הוא זה שמספק את המסירה המהירה ביותר, ולא בהכרח הקרוב ביותר בקו אווירי. ההשהיה, לפי התיעוד, היא הזמן עד שמגיע הבייט הראשון של הקובץ.
אחסון האתר נשאר המקום שממנו מגיע התוכן המקורי. רשת ההפצה מוסיפה שכבת מסירה בין המקור לגולשים, ולכן שרת האחסון צריך לשלוח את אותם קבצים פחות פעמים. לפי אותו תיעוד, החזקת עותקים בכמה מיקומים בעולם מגדילה גם את האמינות והזמינות של התוכן.
המטמון אינו אחסון קבוע. ב־CloudFront, כברירת מחדל, קובץ נשאר במיקום הקצה 24 שעות לפני שהוא פג, ואפשר לשנות זאת באמצעות כותרות שמוגדרות בשרת המקור. אחרי שהקובץ פג, הרשת פונה שוב למקור.
| סוג התוכן | התנהגות ברירת המחדל | משמעות לבעלי האתר |
|---|---|---|
| תמונות בסיומות כגון JPG, PNG ו־WEBP | הסיומות נכללות ברשימת הקבצים הנתמכים במטמון | השמירה בפועל תלויה גם בהוראות המטמון ובכללים שהוגדרו |
| קובצי עיצוב CSS ותסריטי JS | הסיומות נכללות ברשימת הקבצים הנתמכים במטמון | אפשר להגיש עותקים שמורים כאשר תנאי השמירה מתקיימים |
| דפי HTML | אינם נשמרים במטמון כברירת מחדל | שמירת דפים דורשת הגדרה מתאימה ובחינה של סוג התוכן |
| תשובות JSON | אינן נשמרות במטמון כברירת מחדל | אין להניח שחיבור השירות מפעיל עבורן מטמון |
מקור: התיעוד הרשמי של Cloudflare: התנהגות מטמון כברירת מחדל
מתי רשת הפצה יכולה לעזור לאתר שלכם
הערך הברור ביותר הוא כשקהל האתר מפוזר בין אזורים גאוגרפיים, או כשגולשים רבים מבקשים את אותם קבצים ציבוריים. במקרים כאלה חלק מהבקשות נענה מהמטמון, בלי מסע ארוך אל שרת המקור. כמה זמן נחסך בפועל תלוי באתר, במשקל הקבצים ובהגדרות.
נניח שחנות ישראלית מוכרת גם ללקוחות בחו״ל. תמונת מוצר שכבר נשמרה במיקום קצה יכולה להישלח ממנו ללקוח, בלי לבקש אותה שוב משרת החנות. דף החשבון של אותו לקוח, לעומת זאת, מכיל מידע אישי ואין סיבה לשמור אותו כעותק משותף.
לאתר שפונה בעיקר לקהל מקומי, השאלה המעשית היא כמה זמן נחסך. לפני שמוסיפים שירות, בדקו את אותם דפים ממיקומים שרלוונטיים לקהל שלכם, ושמרו את התוצאות כדי להשוות אחרי ההפעלה. אפשר להיעזר גם במדריך לבדיקת מהירות אינטרנט כדי להבין מה המספרים אומרים.
אם אתם עדיין בוחרים תשתית, אפשר להיעזר בהשוואת ספקי אחסון לוורדפרס ולבדוק איזה ספק כולל רשת הפצה, ובאיזה היקף.
רשת הפצה משפיעה בעיקר על המסירה של קבצים. היא לא מתקנת אתר עם תמונות כבדות במיוחד או קוד איטי, ולכן כדאי לטפל גם בהם.
מה נשמר במטמון ומה דורש החרגה
חיבור רשת הפצה אינו אומר שכל האתר נשמר אוטומטית במטמון. סוג הקובץ, הוראות שרת המקור והכללים שהוגדרו בשירות קובעים מה נשמר. ב־Cloudflare, לפי תיעוד ברירת המחדל של המטמון, ההחלטה מתבססת על סיומת הקובץ ולא על סוג התוכן שלו.
הסיומות שנכללות כברירת מחדל מחולקות לכמה קבוצות:
- תמונות, כגון JPG, PNG, WEBP, SVG ו־GIF.
- קובצי CSS וקובצי JS.
- גופנים, כגון WOFF ו־WOFF2.
- מסמכים, כגון PDF ו־DOCX.
- קובצי מדיה, כגון MP4 ו־MP3, וקובצי ארכיון, כגון ZIP.
דפי HTML ותשובות JSON אינם נשמרים במטמון כברירת מחדל, כפי שנאמר בתיעוד.
מה גורם לקובץ לא להישמר
לפי התיעוד, Cloudflare לא שומרת משאב שכותרת Cache-Control שלו היא private, no-store, no-cache או max-age=0. משאב עם public ו־max-age גדול מאפס כן נשמר. כותרת Set-Cookie בתגובה מונעת שמירה, וכך גם בקשות בשיטה שאינה GET.
כשאין כותרות מטמון, ברירת המחדל לתגובה תקינה (קוד 200) היא 120 דקות. תגובת 404 נשמרת 3 דקות. אפשר לעקוף את הערכים האלה בכלל מטמון שמגדירים בשירות.
תוכן אישי ודינמי: מה לא לשמור במטמון
עמודי כניסה, חשבון אישי, עגלת קניות ותשלום דורשים זהירות מיוחדת. לפי הנחיות Cloudflare לטיפול בתוכן דינמי ובבעיות התחברות, כלל שמור שמכריח שמירה של דף דינמי עלול להסיר את כותרת Set-Cookie. הדפדפן אינו מקבל את עוגיית ההתחברות, וההתחברות נכשלת או אינה נשמרת.
התיעוד מתאר גם תקלות נוספות: הפניות חוזרות לדף הכניסה, שגיאות 403 או 500 אחרי התחברות ושגיאות אימות של טפסים. ההנחיה שם ברורה: לא לשמור דפי כניסה או תוכן מאומת אחר.
ההמלצות בתיעוד:
- להגביל את השמירה לנתיבים סטטיים.
- להגדיר כלל שעוקף את המטמון לנתיבים דינמיים, כגון כניסה, חשבון, עגלה ותשלום.
- להסיר עקיפות של זמן שמירה שמכריחות דפים דינמיים להישמר, אם שרת המקור אמור לקבוע זאת בעצמו.
בחנות או באתר עם אזור אישי, בקשו ממי שמגדיר את השירות להסביר אילו כתובות מוחרגות. בדיקת ההפעלה צריכה לכלול גלישה בלי התחברות, התחברות לחשבון, הוספה לסל ומעבר לתשלום.
צ׳ק־ליסט: מה לבדוק לפני שמוסיפים שירות ואחרי שמעדכנים תוכן
- שאלו את ספק האחסון אם רשת הפצה כבר כלולה ומופעלת, ומה היא מגישה בפועל. אם בחרתם ב־Cloudflare, אפשר להמשיך להסבר על חיבור אתר ל־Cloudflare.
- אם השירות דורש שינוי בהגדרות הדומיין, עיינו קודם במדריך ל־DNS, כדי שהשינוי לא יפגע בדואר.
- הגדירו מי אחראי לכללי המטמון ולתקלות אחרי עדכון.
- בדקו אילו כתובות מוחרגות מהשמירה.
- אחרי ההפעלה, בדקו את פרטי התגובה של קבצים בודדים.
איך בודקים שהמטמון פועל
ב־Cloudflare מופיע בתגובה השדה CF-Cache-Status. לפי תיעוד מצבי המטמון, HIT אומר שהקובץ נמצא במטמון ונמסר ממנו. MISS אומר שהקובץ היה כשיר לשמירה אך לא נמצא בו בזמן הבקשה. EXPIRED אומר שהעותק פג והוחלף בעותק חדש מהמקור.
מצב BYPASS מופיע כשהתגובה אינה ניתנת לשמירה, למשל בגלל private, no-store או Set-Cookie. מצב DYNAMIC מציין שהתוכן נקבע כלא כשיר לשמירה כבר בזמן הבקשה. בדיקה של קובץ בודד אינה מעידה שכל האתר נשמר.
איך מעדכנים קובץ שכבר נשמר
כשמחליפים קובץ שכבר נשמר, ייתכן שצריך להסיר את העותק הישן מהמטמון כדי שהעדכון יוצג. לפי הנחיות ניקוי המטמון, האפשרויות כוללות הסרה לפי כתובת, שם מארח, תגיות, תחילית כתובת או הסרת הכול, והשיטה המומלצת היא הסרה לפי כתובת הקובץ. קבלת תשובה 200 מעידה רק שהבקשה התקבלה. כדי לוודא, בקשו את הקובץ שוב ובדקו ש־CF-Cache-Status כבר אינו HIT.
חלוקת אחריות עם ספק
אם אתם נעזרים בשירות בניית האתרים של ברנדיני, הסוכנות שמפעילה את המגזין, בקשו לכלול בהגדרת העבודה גם אחריות לחיבור רשת ההפצה ולבדיקות אחרי עדכונים. בכל התקשרות עם ספק, כדאי להכניס את האחריות הזאת למסגרת תחזוקת האתר והיקף השירות, כדי שיהיה ברור למי פונים כשגרסה ישנה ממשיכה להופיע.











