פרק 6
מטמון (Cache), CDN וביצועים
רשת ה-CDN של קלאודפלייר מאיצה את אתר האינטרנט על ידי שמירת תוכן במרכזי נתונים מבוזרים ברחבי העולם. כך מתקצרים זמני הטעינה ופוחת העומס על שרת המקור.
תוכן יכול להיות סטטי או דינמי. תוכן סטטי, כמו תמונות, קובצי CSS וקובצי JavaScript, ניתן לשמירה במטמון כברירת מחדל. תוכן דינמי, כמו דפי HTML, אינו נשמר במטמון כברירת מחדל, אך ניתן להשתמש ב-Cache Rules כדי לשמור אותו.
#התנהגות מטמון ברירת המחדל
קלאודפלייר שומרת תוכן סטטי במטמון בהתבסס על הגורמים הבאים:
| גורם | למה זה חשוב בפועל |
|---|---|
רמות מטמון (Caching levels) | קובעת כיצד להתייחס למשאבים ולמחרוזות שאילתה. |
סיומת הקובץ (File extension) | הזיהוי נקבע לפי סיומת הקובץ, ולא לפי סוג MIME. |
נוכחות מחרוזות שאילתה (Presence of query strings) | פרמטרים בכתובת יכולים ליצור עותקים נפרדים או להשפיע על פגיעה במטמון. |
כותרות Cache-Control משרת המקור (Origin cache-control headers) | שרת המקור יכול לאשר שמירה, להגדיר זמני תפוגה או לחסום שמירה. |
כותרות מקור שמציינות תוכן דינמי (Origin headers that indicate dynamic content) | תוכן שמסומן כדינמי על ידי המקור אינו נשמר כקובץ סטטי. |
כללי מטמון שעוקפים מטמון לפי עוגייה (Cache rules that bypass cache on cookie) | בקשות המכילות עוגיות מסוימות יכולות לדלג על שמירה במטמון. |
קבצים סטטיים שנשמרים בדרך כלל לפי סיומת: תמונות (.png, .jpg, .webp, .svg, .gif), עיצוב וסקריפטים (.css, .js), מדיה ומסמכים (.pdf, .mp4, .woff2, .ico) וגם robots.txt. דפי HTML, תשובות API ב-JSON/XML ותוכן דינמי אחר אינם נשמרים כברירת מחדל.
[!WARNING] קלאודפלייר שומרת משאבים אך ורק במרכז הנתונים ששירת את הבקשה בפועל. קלאודפלייר אינה שומרת משאבים מאתר חיצוני או מצד שלישי, ואינה שומרת תוכן שמתארח על גבי רשומות DNS במצב
DNS-only(ללא פרוקסי).
#כותרות משרת המקור
קלאודפלייר מכבדת כותרות HTTP שחוזרות משרת המקור:
- עקיפת מטמון: כותרת
Cache-Controlעםno-store,no-cache,privateאוmax-age=0, או כותרתSet-Cookie. - שמירה במטמון: כותרת
Cache-Controlעםpublicוהגדרתmax-age, או כותרתExpiresעם תאריך עתידי.
מלכודת נפוצה: גם קובץ בעל סיומת סטטית לא יישמר במטמון אם שרת המקור מסמן אותו כתוכן דינמי, או אם מוגדר כלל מטמון שעוקף שמירה לפי עוגייה (cookie).
#פיענוח כותרת הסטטוס CF-Cache-Status
בכל תשובה שעוברת דרך הפרוקסי מתווספת הכותרת CF-Cache-Status. אלו הערכים המרכזיים:
| ערך כותרת | משמעות |
|---|---|
HIT | המשאב הוגש ישירות מזיכרון הקצה, ללא פנייה לשרת המקור. |
MISS | המשאב לא היה שמור בקצה. קלאודפלייר שלפה אותו מהמקור ושמרה אותו לבקשות הבאות. |
EXPIRED | העותק במטמון פג תוקף, ולכן בוצעה פנייה למקור לקבלת עותק עדכני. |
DYNAMIC | המשאב אינו נשמר כברירת מחדל, למשל דף HTML רגיל או בקשות מסוג POST ו-PUT. |
BYPASS | כלל מטמון או כותרת הורו במפורש לעקוף את המטמון. |
REVALIDATED | בוצע אימות מול המקור באמצעות If-Modified-Since או If-None-Match, והעותק אושר כעדכני (304 Not Modified). |
#הגדרת כללי מטמון (Cache Rules)
בלוח הבקרה, תחת Caching -> Cache Rules, מגדירים אילו משאבים יישמרו במטמון, לכמה זמן, ומה המאפיינים שלהם. זו הדרך להגדיר שמירה של HTML סטטי או תצוגות עמוד אנונימיות של תוכן דינמי.
דוגמת תרחיש:
- שמירת תמונות מנתיב מסוים לפרק זמן מוגדר בקצה (
Edge TTL). - עקיפת מטמון מלאה עבור נתיבי ניהול או אזורים אישיים.
- שמירת דפי
HTMLציבוריים, ללא שמירת עמודים המכילים עוגיית התחברות.
מאפיינים מרכזיים להגדרה:
Edge TTL: משך הזמן ששרתי הקצה שומרים את העותק לפני פנייה חדשה למקור.Browser TTL: משך הזמן שדפדפן המשתמש שומר את הקובץ אצלו.- מפתח מטמון (
Cache Key): הגדרת מפתחות מטמון מותאמים אישית (custom cache keys) זמינה בתוכניתEnterpriseבלבד. - שמירה לפי סוג מכשיר (
Cache by device type): זמינה בתוכניתEnterpriseבלבד.
[!TIP] כאשר שומרים
HTMLבמטמון, מומלץ להתחיל מכלל ממוקד לדפים ציבוריים ללא עוגיות רגישות. כלל רחב מדי עלול לשמור עמוד אישי ולהציג אותו לגולשים אחרים.
#שיפור שיעורי HIT
כדי לשפר את שיעורי הפגיעה במטמון (HIT rates) ולהפחית את נפח התעבורה לשרת המקור:
- בחירת רמת מטמון (
cache level), והחלטה האם לכלול או להחריג מחרוזות שאילתה (query strings). - ביצוע אופטימיזציה למפתחות מטמון (
cache keys). בתוכניתEnterpriseניתן להגדיר מפתחות מותאמים אישית (custom cache keys). - הפעלת
Tiered CacheעםArgo: שרתי הקצה פונים תחילה לשכבת מטמון עליונה ברשת של קלאודפלייר, ורק לאחר מכן למקור במידת הצורך. - הפעלת
Prefetch URLsכדי למשוך משאבים מראש, זמינה בתוכניתEnterpriseבלבד.
מלכודת: פרמטרים מיותרים בכתובת (כגון פרמטרי מעקב או ערכים אקראיים) משנים את מפתח המטמון ויוצרים MISS חוזר. כדאי להשאיר במפתח רק את הפרמטרים שבאמת משפיעים על התוכן.
#ניקוי מטמון (Cache Purge)
לאחר שחרור גרסה או החלפת קבצים, ניתן לרענן את העותקים ברשת:
Purge by URL: מחיקת קובץ מסוים לפי כתובת מלאה, למשלhttps://example.com/main.css. זו הפעולה המומלצת שאינה מייצרת עומס פתאומי על המקור.Purge by Tag,HostאוPrefix: ניקוי קבוצה לפי תג, מארח או קידומת (זמין בתוכניות ייעודיות).Purge Everything: מחיקת כל המטמון של הדומיין. באתר פעיל פעולה זו עלולה להציף את המקור בבקשות רבות בו זמנית.
[!TIP] עדיף להשתמש בשמות קבצים הכוללים גרסה, כמו
bundle.a8f9c1.jsאוstyle.v4.css. כך כל עדכון מקבל כתובת חדשה, ללא צורך בניקוי ידני של המטמון.
#אבטחת המטמון
הגדרת מטמון מחייבת בקרה קפדנית כדי למנוע חשיפת מידע או שיבוש:
- מניעת התקפות הרעלת מטמון אינטרנט (
Avoid web cache poisoning attacks): אין לכלול במפתח המטמון כותרות או פרמטרים שמשתמש יכול לשלוט בהם ללא אימות. - הגדרת שיתוף משאבים בין מקורות (
Configure Cross-Origin Resource Sharing (CORS)): שליטה במשאבים שלקוח מורשה לטעון והגדרת הרשאות גישה כדי לאפשר למקורות שונים לגשת למשאבי שרת המקור. - הפעלת הגנת הטעיית מטמון (
Enable Cache Deception Armor): הגנה על האתר מפני התקפות הטעיית מטמון (web cache deception attacks), תוך המשך שמירה של נכסים סטטיים.
מלכודת: כתובת של נתיב דינמי שמוצגת עם סיומת סטטית מזויפת עלולה להישמר במטמון ללא הגנה מתאימה. הפעלת Cache Deception Armor מונעת שמירה שגויה מסוג זה.
#תכונות שמשנות תוכן שמור
חלק מתכונות קלאודפלייר משנות את ה-HTML או את האובייקטים השמורים בקצה, לצורך שיפור ביצועים או אבטחה. שינויים אלה משפיעים אך ורק על העותקים השמורים בקצה של קלאודפלייר, ואינם משנים את קובצי המקור המקוריים בשרת. קלאודפלייר מסירה את השינויים כאשר מכבים את התכונה ומבצעים ניקוי מטמון (purge).
| תכונה | מה לבדוק |
|---|---|
Rocket Loader | עלול לשנות את אופן טעינת הסקריפטים בעותק השמור. |
Polish | דוחס ומייעל תמונות בעותק הקצה. |
Hotlink Protection | חוסם הטמעה מאתרים אחרים, כולל למשאב שכבר במטמון. |
Email address obfuscation | מסווה כתובות דואל בקוד ה-HTML השמור. |
Bot Management JavaScript Detections | מוסיף קוד זיהוי בעותק הקצה. |
אם כיביתם תכונה כזו ועדיין מופיעה ההתנהגות הקודמת, יש לבצע ניקוי מטמון (purge) כדי להסיר את העותק ששונה.
#יכולות האצה נוספות
Tiered CacheעםArgo: מפחית פניות ישירות למקור באמצעות שכבת מטמון עליונה בתוך הרשת של קלאודפלייר.Cache Reserve: שכבת אחסון מבוססתR2, המיועדת לשמירת תוכן לאורך זמן ולהפחתת פניות למקור.- איחוד בקשות במקביל (
Concurrent Request Collapsing): כאשר מתקבלות בקשות מרובות בו זמנית לאותו משאב חסר, נשלחת בקשה יחידה למקור והתשובה מועברת לכל הממתינים. Always Online: במקרה ששרת המקור אינו זמין זמנית, המערכת יכולה להגיש לגולשים עותק שמור.
#אבחון תקלות
לפי התיעוד הרשמי (עודכן ב-6 במאי 2026), אבחון בעיות במטמון כולל את הצעדים הבאים:
- בדיקת סטטוס תגובת המטמון של קלאודפלייר לפי ערכי הכותרת
CF-Cache-Status. - חקירת תגובת המטמון של קלאודפלייר באמצעות כלי
cURL. - אבחון תקלות בשירות
Always Online.
בנוסף, יש לוודא שרשומת ה-DNS פועלת עם פרוקסי פעיל (ולא במצב DNS-only), שהמשאב אינו מגיע מאתר חיצוני או מצד שלישי, ושאין כותרת מקור או כלל מטמון המורים על עקיפת שמירה (bypass).
בפרק הבא נעסוק בחומת האש האפליקטיבית (WAF), הגבלת קצב בקשות (Rate Limiting) והגנה מתקדמת מפני מתקפות DDoS ובוטים.