در این صفحه، هدرهایی را بررسی می‌کنیم که سرویس CDN ستون به درخواست یا پاسخ اضافه می‌کند. برای افزودن، تغییر یا حذف هدر روی قانون مسیر، سفارشی‌سازی هدرهای HTTP و برای ساخت قانون مسیر، هدایت درخواست‌ها به آپ‌استریم با قوانین مسیر را دنبال می‌کنیم.

هدرها در دو جهت اضافه می‌شوند:

  • آپ‌استریم: هدر روی درخواست کاربر، پیش از رسیدن به مبدا
  • داون‌استریم: هدر روی پاسخ، پیش از رسیدن به کلاینت

سفارشی‌سازی هر جهت روی همان قانون مسیر انجام می‌شود. هدر Host روی آپ‌استریم تنظیم می‌شود، نه روی قانون مسیر.

هدرهای آپ‌استریم

لبه این هدرها را روی درخواست می‌گذارد و به مبدا می‌فرستد. پیکربندی جدا برای هدرهای اختصاصی لازم نیست.

همیشه ارسال می‌شوند

هدرمقدارمعنی
X-Stn-Request-Idرشته ۳۲ کاراکتری هگزشناسه یکتای همین درخواست؛ برابر فیلد request_id در لاگ لحظه‌ای و ارسال لاگ
X-Stn-IPآدرس IPv4 یا IPv6IP واقعی کاربر
X-Stn-Hosthostnameهاست درخواستی کاربر
X-Stn-Protohttp یا httpsپروتکل کاربر تا CDN
X-Stn-Country-Codeکد کشور دو حرفی، مثلا IRکشور مبدا درخواست
X-Stn-JA4اثر انگشت JA4، یا خالیاثر انگشت TLS ClientHello؛ فقط در HTTPS مقدار دارد
X-Stn-Known-Botنام ربات، یا خالیاگر درخواست از IP ربات شناخته‌شده (Google، Bing، OpenAI) آمده باشد
X-Stn-Accept-Webpon یا offپشتیبانی کلاینت از WebP
X-Forwarded-Hosthostnameهاست درخواستی کاربر؛ معادل Host درخواست
CDN-Loopمقدار داخلی لبهجلوگیری از حلقه بین لبه‌ها

نمونه X-Stn-Request-Id: 08a131dbebca26070f26c1a334fab774.

نمونه X-Stn-JA4: t13d1517h2_8daaf6152771_0d789d2519e1.

X-Stn-Proto پروتکل کاربر تا CDN است و با پروتکل آپ‌استریم (لبه تا مبدا) یکی نیست.

مقدار X-Stn-Request-Id با فیلد request_id یکی است. برای کنار هم گذاشتن لاگ CDN و لاگ اپلیکیشن، همین مقدار را در مبدا ثبت می‌کنیم. فهرست فیلدها: فیلدهای لاگ درخواست. تفاوت لاگ زنده و ارسال لاگ: لاگ لحظه‌ای درخواست‌ها.

مشروط به تفکیک کش

این هدرها فقط وقتی تفکیک کش مربوطه روی قانون مسیر فعال باشد به مبدا می‌روند.

هدرمقدارشرط ارسال
X-Stn-Devicemobile، tablet یا desktopتفکیک کش بر اساس دستگاه
X-Stn-Countryبرابر X-Stn-Country-Codeتفکیک کش بر اساس کشور
X-Stn-Cookieکلید و مقدار کوکی‌های ملاک تفکیکتفکیک کش بر اساس کوکی

هر تفکیک تعداد کلید کش را بالا می‌برد و نرخ HIT را پایین می‌آورد. توضیح در کش در CDN ستون چگونه کار می‌کند؟ است.

هدر Host

Host به مبدا می‌گوید کدام سایت را سرو کند. سه حالت در آپ‌استریم:

حالتمقدار ارسالی
استفاده از دامنه سرور آپ‌استریمHost برابر Hostname همان سرور
مقدار صریحهمان رشته‌ای که در هاست هدر (اختیاری) نوشته می‌شود
خالیHost درخواست کاربر، بدون تغییر

جدول کامل در مرجع تنظیمات آپ‌استریم است.

سفارشی‌سازی

در قانون مسیر، بخش هدر آپ‌استریم:

عملاثر
افزودن یا تغییرهدر جدید روی درخواست به مبدا، یا بازنویسی مقدار موجود
حذفحذف هدر از درخواست کاربر پیش از رسیدن به مبدا

هدرهای اختصاصی ستون در جدول‌های بالا به‌صورت پیش‌فرض ارسال می‌شوند؛ برای رسیدن به مبدا لازم نیست دوباره اضافه شوند.

از قانون مسیر نمی‌توان Connection و CDN-Loop را حذف یا بازنویسی کرد. Upgrade و Connection را لبه در صورت نیاز (مثلا WebSocket) تنظیم می‌کند.

هدرهای داون‌استریم

لبه این هدرها را روی پاسخ می‌گذارد و به کلاینت می‌فرستد.

همیشه ارسال می‌شوند

هدرمقدارمعنی
x-zrk-csوضعیت کشنتیجه تصمیم کش لبه برای همین درخواست
x-zrk-snنام نود، مثلا irancell1سرور لبه‌ای که پاسخ را داده است
x-zrk-usکد وضعیت HTTP، مثلا 200کدی که آپ‌استریم به لبه داده است؛ در HIT معمولا خالی است
serverSotoon CDNهمیشه همین مقدار

x-zrk-sn با فیلد server در لاگ درخواست و برچسب edge در مانیتورینگ یکی است. جزییات نود در مرجع لبه CDN است.

پاسخ کلاینت را با curl -I می‌خوانیم:

curl -I https://example.com

در خروجی باید server: Sotoon CDN و هدرهای x-zrk-* دیده شوند.

مقادیر x-zrk-cs

همان مفهوم فیلد cache_status در لاگ لبه است.

مقدارمعنی
HITپاسخ از کش لبه آمده است
MISSدر کش نبود؛ از آپ‌استریم گرفته و در صورت قابل‌کش بودن ذخیره شده است
BYPASSلبه عامدانه کش نکرده است
STALEعمر Edge TTL تمام شده و لبه نسخه‌ی منقضی را داده است
UPDATINGلبه در حال تازه‌سازی همان کلید است و هم‌زمان نسخه‌ی موجود را می‌دهد
EXPIREDنسخه‌ی کش منقضی بوده و لبه دوباره از آپ‌استریم گرفته است
REVALIDATEDلبه اعتبار نسخه را با آپ‌استریم سنجیده و همان نسخه را نگه داشته است

پس از Purge ممکن است MISS دیده شود. معنی وضعیت‌ها در کش در CDN ستون چگونه کار می‌کند؟ است.

سفارشی‌سازی

در قانون مسیر، بخش هدر داون‌استریم:

عملاثر
افزودن یا تغییرهدر جدید روی پاسخ به کاربر، مثلا Strict-Transport-Security
حذفحذف هدر پاسخ مبدا پیش از رسیدن به کاربر، مثلا X-Powered-By

Cache-Control از تنظیمات کش همان قانون مسیر هم اثر می‌گیرد؛ قرارداد TTL در مفهوم کش است.

از قانون مسیر نمی‌توان Connection، CDN-Loop و Date را حذف یا بازنویسی کرد.

ادامه مسیر