شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
این مبحث توضیح میدهد که Edge چگونه هدرهای ذخیرهسازی HTTP/1.1 را هنگام استفاده از خطمشی ResponseCache مدیریت میکند. Apigee Edge در حال حاضر از زیرمجموعهای از هدرها و دستورالعملهای ذخیرهسازی HTTP/1.1 (ویژگیهای پشتیبانینشده در این مبحث فهرست شدهاند) پشتیبانی میکند که از سرورهای هدف (منبع) باطن دریافت میشوند.
علاوه بر این، با هدرهای خاص، Edge بر اساس دستورالعمل های آنها اقدام می کند. در برخی موارد، این هدرهای حافظه پنهان HTTP/1.1 هر رفتاری را که در خط مشی ResponseCache مشخص شده است، لغو می کنند. برای مثال، اگر هدر Cache-Control
از یک سرور باطن بازگردانده شود، میتوانید دستور s-maxage
سرصفحه را به طور بالقوه نادیده بگیرید سایر تنظیمات انقضا در خطمشی.
سربرگ | پشتیبانی کنید |
---|---|
Cache-Control | در پاسخهای برگشتی از سرورهای مبدا باطن پشتیبانی میشود، اما نه درخواستهای مشتری. Edge از زیر مجموعه ای از دستورالعمل ها پشتیبانی می کند. |
منقضی می شود | پشتیبانی می شود. قابل رد شدن است. |
برچسب های موجودیت (ETags) | رفتار خاص برای If-Match و If-None-Match . |
If-Modified-Since | در درخواستهای GET، هدر به سرور مبدا ارسال میشود، حتی اگر یک ورودی حافظه پنهان معتبر وجود داشته باشد. |
پذیرش-رمزگذاری | Edge بسته به هدرهای ورودی، پاسخهای فشرده یا غیرفشرده را ارسال میکند. |
Cache-Control
Apigee Edge از هدر Cache-Control
فقط در پاسخهایی که از سرورهای اصلی باطن بازگردانده میشوند پشتیبانی میکند (مشخصات HTTP/1.1 به هدرهای Cache-Control
در درخواستهای مشتری و پاسخهای سرور مبدا اجازه میدهد). سرورهای مبدأ می توانند هر دو نقطه پایانی هدف تعریف شده در یک پراکسی Apigee Edge API و آنهایی که با استفاده از فراخوانی TargetServer API ایجاد شده اند را شامل شوند.
محدودیت های پشتیبانی 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، تنها استثنای این قاعده در صورتی است که پاسخ شامل یک عنوان مجوز باشد. |
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، سرور می تواند تعیین کند که آیا منبع درخواستی و منبع ذخیره شده مرتبط با آن مطابقت دارند یا خیر. به عنوان مثال، سرور میتواند پاسخ را در صورت عدم مطابقت با آنچه که در حال حاضر در حافظه پنهان است، ذخیره کند. اگر تگ های ET مطابقت داشته باشند، می تواند منبع ذخیره شده را برگرداند.
هنگامی که یک نقطه پایانی هدف، پاسخی را با ETag به Edge ارسال می کند، Edge ETag را همراه با پاسخ ذخیره می کند.
می توانید اطلاعات بیشتری در مورد برچسب های نهاد در پارامترهای پروتکل در مشخصات HTTP/1.1 بخوانید.
اگر-مچ
با هدر درخواست If-Match
، اگر ETag در هدر با ETag ذخیره شده مطابقت داشته باشد، یک موجودیت ذخیره شده در حافظه پنهان جاری است. هر درخواستی غیر از GET که هدر If-Match
مشخص میکند به سرور مبدا ارسال میشود تا اطمینان حاصل شود که امکانات ذخیرهسازی مبدا فرصتی برای پردازش درخواست دارند.
می توانید اطلاعات بیشتری در مورد If-Match
در تعاریف فیلد سرصفحه در مشخصات HTTP/1.1 بخوانید.
اگر Edge یک درخواست GET ورودی از یک کلاینت دریافت کند که شامل سرصفحه If-Match
است:
اگر | سپس |
---|---|
هدر If-Match یک یا چند ETag را مشخص می کند |
|
هدر If-Match "*" را مشخص می کند | درخواست به سرور مبدا ارسال می شود تا اطمینان حاصل شود که هر گونه امکانات کش مبدا فرصتی برای پردازش درخواست دارد |
یک ورودی حافظه پنهان با همان URI درخواست یافت می شود، اما فقط حاوی ETag های ضعیف است | ورودی باید قبل از بازگرداندن به مشتری توسط سرور مبدا تأیید شود |
ETag ها از سرور مبدا می آیند. | ETag بدون تغییر به مشتری بازگردانده می شود |
اگر-هیچ-تطابق
با هدر If-None-Match
، اگر ETag در هدر با ETag ذخیره شده مطابقت نداشته باشد، موجودیت ذخیره شده در حافظه پنهان جاری است. درخواستهایی غیر از GET که حاوی این هدر هستند به سرور مبدا ارسال میشوند.
اگر Edge یک درخواست GET ورودی با این هدر دریافت کند:
اگر | سپس |
---|---|
هدر If-None-Match یک یا چند ETag را مشخص می کند |
|
هدر | Edge وضعیت 304 Not Modified را برمیگرداند |
یک ورودی حافظه پنهان با همان URI درخواست یافت می شود اما فقط حاوی ETag های ضعیف است | ورودی باید قبل از اینکه Edge آن را به مشتری بازگرداند توسط سرور مبدا تأیید شود |
Edge یک ETag از یک سرور مبدا دریافت می کند | ETag بدون تغییر به مشتری بازگردانده می شود |
If-Modified-Since
اگر Apigee Edge یک هدر If-Modified-Since
را در یک درخواست GET دریافت کند، حتی اگر یک ورودی کش معتبر وجود داشته باشد، به سرور مبدا ارسال می شود.
این تضمین می کند که هر به روز رسانی منبعی که از Apigee Edge عبور نکرده است، حساب می شود. اگر سرور مبدا یک موجودیت جدید را برگرداند، Edge ورودی حافظه پنهان موجود را با مقدار جدید جایگزین میکند. اگر سرور وضعیت 304 Not Modified را برگرداند، Edge مقدار پاسخ را برمیگرداند اگر هدر Last-Modified
پاسخ ذخیره شده نشان دهد که تغییر نکرده است.
پذیرش-رمزگذاری
هنگامی که یک درخواست دریافتی شامل هدر Accept-Encoding
با مقادیر gzip
، deflate
یا compress
، سرور مبدا با داده های فشرده پاسخ می دهد. هنگامی که درخواستهای بعدی بدون هدرهای Accept-Encoding
ارائه میشوند، انتظار پاسخ غیرفشرده را دارند. مکانیسم ذخیره پاسخ Apigee قادر است هر دو پاسخ فشرده و غیر فشرده را بسته به هدرهای ورودی بدون بازگشت به سرور مبدا ارسال کند.
میتوانید مقادیر سرصفحه Accept را به کلیدهای حافظه پنهان اضافه کنید تا کلیدها برای هر مورد ذخیرهشده معنیدارتر شوند. برای جزئیات بیشتر، به "پیکربندی یک کلید حافظه پنهان" در سیاست کش پاسخ مراجعه کنید.