אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
בנושא הזה מוסבר איך Edge מטפל בכותרות של HTTP/1.1 שמאוחסנות במטמון כשמשתמשים במדיניות ResponseCache. בשלב זה, Apigee Edge תומך בקבוצת משנה של ההנחיות והכותרות של HTTP/1.1 לשמירת נתונים במטמון (התכונות שלא נתמכות מפורטות בנושא הזה) שמתקבלות משרתי היעד (המקור) לקצה העורפי.
בנוסף, בכותרות מסוימות, Edge מבצע פעולות על סמך ההנחיות שלהן. במקרים מסוימים, כותרות המטמון האלה של HTTP/1.1 מבטלות את ההתנהגות שצוינה במדיניות ResponseCache.
לדוגמה, אם הכותרת Cache-Control
מוחזרת משרת לקצה העורפי, יכול להיות שההוראה s-maxage
של הכותרת תבטל הגדרות תפוגה אחרות במדיניות.
שם | תמיכה |
---|---|
סמל המטמון | התכונה נתמכת בתגובות שמוחזרות משרתים מקור לקצה העורפי, אבל לא בבקשות של לקוחות. ב-Edge יש תמיכה בקבוצת משנה של הנחיות. |
תאריך תפוגה | נתמך. אפשר לשנות את ההגדרה הזו. |
תגי ישות (ETags) | התנהגות ספציפית ל-If-Match ול-If-None-Match. |
If-Modified-Since | בבקשות GET, הכותרת מועברת לשרת המקור גם אם יש רשומה תקפה במטמון. |
Accept-Encoding | Edge שולח תשובות דחוסות או לא דחוסות, בהתאם לכותרות הנכנסות. |
סמל המטמון
Apigee Edge תומך בכותרת Cache-Control
רק בתשובות שמוחזרות משרתים מקור לקצה העורפי (מפרט HTTP/1.1 מאפשר כותרות Cache-Control
גם בבקשות של לקוחות וגם בתשובות של שרתי מקור). שרתי המקור יכולים לכלול גם נקודות קצה יעד שמוגדרות בשרת proxy ל-API של Apigee Edge וגם נקודות קצה שנוצרו באמצעות קריאות API ל-TargetServer.
מגבלות התמיכה ב-Cache-Control
Apigee Edge תומך בקבוצת משנה של יכולות של כותרות תגובה מסוג Cache-Control
שמוגדרות במפרט HTTP/1.1. שימו לב:
- Apigee Edge לא תומך בכותרות
Cache-Control
שמגיעות עם בקשות נכנסות של לקוחות. - Apigee Edge תומך רק במושג של מטמון ציבורי. (לפי מפרט ה-HTTP, השדה
Cache-Control
יכול להיות ציבורי (משותף) או פרטי (משתמש יחיד).) - Apigee Edge תומך רק בקבוצת משנה של הנחיות התגובה
Cache-Control
במפרט HTTP/1.1. לפרטים נוספים, ראו תמיכה בהוראות של כותרות תגובה מסוג Cache-Control.
תמיכה בהוראות בכותרות התגובה של Cache-Control
Apigee תומך בהוראות של קבוצת משנה מהמפרט של HTTP/1.1 בתגובות משרתים מקור. בטבלה הבאה מתוארת התמיכה של Apigee Edge בהוראות של כותרת התגובה של HTTP Cache-Control.
למידע מפורט יותר על ההנחיות שמפורטות כאן, ראו Cache-Control במפרט HTTP/1.1.
ההוראה Cache-Control | איך Apigee Edge מעבד את ההנחיה |
cache-extension |
לא נתמכת. |
max-age |
אם המדיניות של ResponseCache מגדירה את הרכיב ההוראה הזו מבוטלת על ידי ההוראה |
must-revalidate |
לא נתמכת. כל הרשומות במטמון נמחקות על ידי Apigee Edge ברגע שתוקפן פג. |
no-cache |
מערכת Edge מאחסנת את התגובה מהמקור במטמון, אבל צריך לאמת אותה מחדש מול שרת המקור לפני שמשתמשים בה כדי לענות על בקשות לקוח נוספות. הכלל הזה מאפשר למקור להחזיר תגובה מסוג 304 Not Modified כדי לציין שצריך להחזיר את התגובה מהמטמון, וכך לחסוך את העיבוד הנדרש להחזרת התגובה כולה. אם שרת המקור מחזיר תגובה מלאה, הוא מחליף את הרשומה הקיימת במטמון. המערכת תתעלם משמות השדות שצוינו באמצעות ההנחיה הזו. |
no-store |
לא נתמכת. |
no-transform |
לא נתמכת. |
private |
לא נתמכת. אם ההוראה הזו מתקבלת, התגובה מהמקור לא מאוחסנת במטמון. המערכת תתעלם משמות השדות. |
proxy-revalidate |
לא נתמכת. כל הרשומות במטמון נמחקות על ידי Apigee Edge ברגע שתוקפן פג. |
public |
Edge מאחסן את התשובה מהמקור במטמון, גם אם הוראות אחרות מצביעות אחרת. בהתאם למפרט של HTTP/1.1, היוצא מן הכלל היחיד לכלל הזה הוא אם התגובה כוללת כותרת Authorization. |
s-maxage |
אם המדיניות של ResponseCache מגדירה את הרכיב ההוראה הזו מבטלת את ההוראה |
בתוקף עד
כשהדגל UseResponseCacheHeaders
במדיניות ResponseCache מוגדר ל-true
, Edge יכול להשתמש בכותרת Expires
כדי לקבוע את אורך החיים (TTL) של רשומה במטמון. הכותרת הזו מציינת תאריך ושעה שאחריהן רשומת המטמון של התגובה נחשבת לא רלוונטית. הכותרת הזו מאפשרת לשרתים לסמן מתי מותר להחזיר ערך ששמור במטמון על סמך חותמת זמן.
פורמטים קבילים של תאריכים לכותרת Expires
מתוארים במפרט של HTTP/1.1. לדוגמה:
תאריך תפוגה: יום חמישי, 01 בדצמבר 1994 בשעה 16:00:00 (GMT)
מידע מפורט על פורמטים של תאריך ושעה ב-HTTP זמין בקטע פורמטים של תאריך ושעה במפרט HTTP/1.1.
מידע נוסף על הכותרת Expires
זמין בקטע הגדרות של שדות כותרות במפרט HTTP/1.1.
ETag
תג ישות (ETag) הוא מזהה שמשויך למשאב המבוקש. באמצעות ETag, השרת יכול לקבוע אם המשאב המבוקש והמשאב המשויך שנשמר במטמון תואמים. לדוגמה, השרת יכול לאחסן מחדש את התשובה במטמון אם היא לא תואמת למה שנמצא כרגע במטמון. הוא יכול להחזיר את המשאב ששמור במטמון אם תהיה התאמה בין תגי ה-ETag.
כשנקודת קצה יעד שולחת תשובה חזרה אל Edge עם ETag, Edge מאחסן את ה-ETag במטמון יחד עם התגובה.
מידע נוסף על תגי ישות זמין בקטע פרמטרים של פרוטוקול במפרט HTTP/1.1.
If-Match
כשמשתמשים בכותרת הבקשה If-Match
, ישות שמאוחסנת במטמון נחשבת עדכנית אם ה-ETag בכותרת תואם ל-ETag שנשמר במטמון. כל בקשה שאינה GET שמציינת כותרת If-Match
מועברת לשרת המקור כדי לוודא שלכל מתקני האחסון במטמון של המקור תהיה הזדמנות לעבד את הבקשה.
מידע נוסף על If-Match
זמין בקטע הגדרות שדות כותרות במפרט HTTP/1.1.
אם Edge מקבל בקשת GET נכנסת מלקוח שכוללת כותרת If-Match
:
אם | אז |
---|---|
הכותרת If-Match מציינת ETag אחד או יותר |
|
הכותרת If-Match מציינת "*" |
הבקשה מועברת לשרת המקור כדי להבטיח שלכל מתקני האחסון במטמון של המקור תהיה הזדמנות לעבד את הבקשה |
נמצאת רשומה במטמון עם אותו מזהה URI של הבקשה, אבל היא מכילה רק ETags חלשים | שרת המקור צריך לאמת מחדש את הרשומה לפני שהיא מוחזרת ללקוח |
תגי ה-ETag מגיעים משרת המקור. | ה-ETag מוחזר ללא שינוי ללקוח |
If-None-Match
עם הכותרת If-None-Match
, ישות שמאוחסנת במטמון היא עדכנית אם ה-ETag בכותרת לא תואם ל-ETag שנשמר במטמון. בקשות שאינן בקשות GET שמכילות את הכותרת הזו מועברות לשרת המקור.
אם Edge מקבל בקשת GET נכנסת עם הכותרת הזו:
אם | אז |
---|---|
הכותרת If-None-Match מציינת ETag אחד או יותר |
|
הכותרת |
Edge מחזיר סטטוס 304 Not Modified |
נמצאת רשומה במטמון עם אותו מזהה URI של הבקשה, אבל היא מכילה רק ETags חלשים | שרת המקור צריך לאמת מחדש את הרשומה לפני ש-Edge מחזיר אותה ללקוח |
Edge מקבל ETag משרת מקור | ה-ETag מוחזר ללא שינוי ללקוח |
If-Modified-Since
אם Apigee Edge מקבל כותרת If-Modified-Since
בבקשת GET, היא מועברת לשרת המקור גם אם יש רשומה תקפה במטמון.
כך תוכלו לוודא שכל העדכונים למשאב שלא עברו דרך Apigee Edge נלקחים בחשבון. אם שרת המקור מחזיר ישות חדשה, Edge מחליף את הערך הקיים במטמון בערך החדש. אם השרת מחזיר סטטוס 304 Not Modified, Edge מחזיר את ערך התגובה אם הכותרת Last-Modified
של התגובה ששמורה במטמון מציינת שהיא לא השתנתה.
Accept-Encoding
כשבקשה נכנסת כוללת את הכותרת Accept-Encoding
עם הערכים gzip
, deflate
או compress
, השרת המקור מחזיר נתונים דחוסים. כשבקשות הבאות מגיעות בלי כותרות Accept-Encoding
, הן מצפות לתגובה ללא דחיסה. מנגנון האחסון במטמון של התשובות ב-Apigee יכול לשלוח תגובות דחוסות ולא דחוסות, בהתאם לכותרות הנכנסות, בלי לחזור לשרת המקור.
אפשר לצרף ערכים של כותרת Accept למפתחות שמאוחסנים במטמון כדי להפוך את המפתחות למשמעותיים יותר לכל פריט שמאוחסן במטמון. פרטים נוספים זמינים בקטע 'הגדרת מפתח מטמון' במאמר מדיניות מטמון התשובות.