معنای Vary: * برای یک کش پروکسی مشترک
بفهمید چرا پاسخی ذخیرهشده با Vary: * نمیتواند از طریق انتخاب عادی کش مشترک با درخواستی بعدی مطابقت پیدا کند.
پاسخ ذخیرهشدهای که Vary: * دارد همیشه در آزمون تطابق عادی Vary شکست میخورد. پروکسی نمیتواند نتیجه بگیرد که درخواستی بعدی مستحق همان نمایش است فقط به این دلیل که URL و سرآیندهای قابل مشاهدهاش شبیه به هم به نظر میرسند.
این را با موارد زیر مقایسه کنید:
Vary: Accept-Encoding
این یک فیلد درخواست را نام میبرد که کش میتواند آن را مقایسه کند. علامت عام میگوید این نوع مقایسه سرآیندها کافی نیست. افزایش تازگی یا اندازه کش اطلاعات انتخابِ ازدسترفته را فراهم نمیکند.
تمایز میان ذخیرهسازی و استفاده مجدد است. کش میتواند اطلاعاتی را نگه دارد که برای اعتبارسنجی مفید است، اما نسخه ذخیرهشده با علامت عام به پاسخی عادی و منطبق تبدیل نمیشود که بتواند درخواست بعدی را برآورده کند. پروکسی معمولاً باید به جای آن با مبدأ تماس بگیرد.
بگذارید سیاست پاسخ برنامه را توصیف کند
اگر مبدأ را کنترل میکنید و نمایش واقعاً فقط بر اساس سرآیندهای درخواست قابل شناسایی تغییر میکند، آن فیلدها را دقیق نام ببرید. علامت عام را فقط به این دلیل که آن مثال قابل کش شدن است با Accept-Encoding جایگزین نکنید: برنامه ممکن است بر اساس زبان، مجوز یا اطلاعاتی بیرون از آن سرآیندها نیز تغییر کند.
اگر محتوا خصوصی است یا نباید ذخیره شود، این را از طریق سیاست کش مربوطه بیان کنید. حذف Vary محتوای شخصیسازیشده را برای اشتراکگذاری ایمن نمیکند.
تنظیم vary_ignore_expire در Squid به مدیریت انقضا برای پاسخهای متغیر و رفتار تاریخی HTTP مربوط است. این یک کلید نیست که علامت عام را منطبق کند.