پرش به مطلب اصلی

هدرهای ارسالی CDN

در جریان پردازش اولیه هر درخواست، شبکه CDN آبالون مجموعه‌ای از هدرهای فنی را به پاسخ ارسالی اضافه می‌کند. این هدرها شامل اطلاعات دقیقی درباره وضعیت پردازش، کش، زمان پاسخ و مسیر طی‌شده توسط درخواست هستند و نقش کلیدی در تحلیل و عیب‌یابی درخواست‌ها ایفا می‌کنند.

در صورتی که داده‌ مورد نیاز در کش موجود نباشد، سرور لبه درخواست را به سرور مبدأ منتقل می‌کند. در این انتقال نیز مجموعه‌ای از هدرهای خاص به درخواست اضافه می‌شود که شامل اطلاعات کنترلی، وضعیت تأیید اعتبار و سایر جزئیات فنی هستند. در پلن سازمانی، امکان سفارشی‌سازی این هدرها مطابق با نیازهای امنیتی و ساختاری وجود دارد.

برای مشاهده‌ این هدرها، می‌توانید در مرورگر Google Chrome از ابزار Inspect و سپس تب Network استفاده کنید. در مرورگرهای دیگر نیز گزینه‌هایی مشابه با همین عملکرد قابل دسترسی هستند. در ادامه، مهم‌ترین هدرهای ارسالی از سوی CDN آبالون به کاربر و سرور مبدأ به‌صورت جداگانه معرفی شده‌اند.

هدرهای ارسالی به سمت کاربر

X-Request-Id

برای هر درخواست، یک شناسه یکتا تولید و در این هدر درج می‌شود. این شناسه به مدیران سیستم این امکان را می‌دهد تا با جست‌وجوی مقدار آن در لاگ‌سرورها، مسیر کامل پردازش درخواست را بررسی کنند.

X-Sid

این هدر عددی چهاررقمی را شامل می‌شود که مشخص می‌کند کدام سرور لبه پاسخ‌گوی درخواست کاربر بوده است. 

Server-Timing

مقدار این هدر نشان می‌دهد که محتوا طی چه مدت توسط سرور لبه پردازش شده و به کاربر تحویل داده شده است. این زمان می‌تواند حاصل دریافت مستقیم از کش داخلی آبالون یا از سرور مبدأ باشد. مقدار این هدر برحسب میلی‌ثانیه ثبت می‌شود.

X-Cache

این هدر نشان می‌دهد که آیا منبع درخواست‌شده، از کش سرور لبه آبالون دریافت شده یا از سرور مبدأ بازیابی شده است. با بررسی مقدار این هدر می‌توان وضعیت ذخیره‌سازی و واکشی منابع را تحلیل کرد. 

در ادامه، مقادیر ممکن برای هدر X-Cache و معنی هرکدام توضیح داده شده است:

  • HIT نشان می‌دهد که منبع مورد نظر در کش سرور لبه موجود بوده و پاسخ از همان محل ارسال شده است.

  • MISS بیانگر آن است که منبع در کش موجود نبوده و سرور لبه درخواست را به سرور مبدأ منتقل کرده است.

  • EXPIRED منبع در کش وجود داشته اما به دلیل پایان زمان اعتبار آن، سرور لبه به سرور اصلی مراجعه کرده و پاسخ جدید دریافت کرده است.

  • STALE سرور لبه نسخه منقضی‌شده‌ای از منبع را موقتاً ارسال کرده است، زیرا هم‌زمان در حال بررسی اعتبار نسخه جدید از سرور مبدأ برای یک درخواست دیگر بوده است. این وضعیت به‌ندرت رخ می‌دهد و معمولاً موقتی است.

  • BYPASS منبع به دلایلی از جمله تنظیمات خاص یا نوع محتوا، قابل کش شدن نبوده و مستقیماً از سرور مبدأ دریافت شده است.

  • REVALIDATED نسخه‌ای قدیمی از منبع در کش وجود داشته و سرور لبه پس از اعتبارسنجی با هدرهایی مانند If-Modified-Since یا If-None-Match، همان نسخه را معتبر تشخیص داده و برای پاسخ استفاده کرده است.

  • UPDATING منبع در کش موجود بوده اما هم‌زمان در حال به‌روزرسانی است. سرور لبه تا زمان تکمیل فرایند به‌روزرسانی، نسخه قبلی را ارسال می‌کند. این حالت معمولاً در مورد فایل‌های بزرگ یا منابع سنگین مشاهده می‌شود.

X-Xss-Protection

حملات XSS (مخفف Cross-Site Scripting) یکی از متداول‌ترین تهدیدهای امنیتی در سطح وب هستند که به مهاجم امکان تزریق کدهای مخرب جاوااسکریپت یا HTML را می‌دهند. این کدها در مرورگر کاربر اجرا می‌شوند و ممکن است اطلاعات حساس را افشا کرده یا منجر به تغییر رفتار سایت شوند.

مرورگرهای مدرن به‌صورت پیش‌فرض مکانیزم‌هایی برای مقابله با این نوع حمله دارند. یکی از این ابزارها، هدر X-Xss-Protection است. با فعال‌سازی این هدر در پاسخ‌های HTTP، مرورگر دستور می‌گیرد که اجرای اسکریپت‌های مشکوک را مسدود کند یا از نمایش صفحه جلوگیری کند.

Content-Security-Policy

در برخی موارد، ممکن است یک وب‌سایت با پروتکل HTTPS بارگذاری شود اما محتوایی مانند اسکریپت، تصویر یا فایل استایل از طریق HTTP فراخوانی شود. این وضعیت که «محتوای ترکیبی» (Mixed Content) نام دارد، باعث نمایش هشدار امنیتی در مرورگر می‌شود و می‌تواند امنیت صفحه را به خطر بیندازد.

با فعال‌سازی این قابلیت در پنل HTTPS آبالون، هدر Content-Security-Policy به پاسخ‌ها افزوده می‌شود. این هدر به مرورگر اعلام می‌کند که در صورت تشخیص لینک‌های ناامن، باید آن‌ها را به نسخه امن (HTTPS) تغییر دهد و از بارگذاری منابع ناامن جلوگیری کند.

Strict-Transport-Security

هدر Strict-Transport-Security (یا HSTS) ابزاری برای وادار کردن مرورگر به استفاده همیشگی از HTTPS است. با فعال‌سازی این گزینه در تنظیمات CDN آبالون، هدر مربوطه به پاسخ HTTP افزوده می‌شود و به مرورگر اعلام می‌کند که برای مدت مشخصی (مثلاً یک ماه)، همه درخواست‌های بعدی باید فقط از طریق HTTPS انجام شود حتی اگر آدرس اولیه به‌صورت HTTP وارد شده باشد.

این سیاست باعث می‌شود حملاتی مانند downgrade attack یا man-in-the-middle در زمان تغییر از HTTP به HTTPS بی‌اثر شوند.

هدرهای ارسالی به سمت سرور اصلی

X-Sid

یک کد چهار رقمی است که نشان می‌دهد کدام سرور لبه درخواست را به سمت سرور مبدأ ارسال کرده است.

X-Real-IP

این هدر IP واقعی کاربر را در اختیار سرور مبدأ قرار می‌دهد. در حالت عادی، چون درخواست ابتدا به سرور لبه می‌رسد، IP ثبت‌شده مربوط به همان سرور لبه CDN خواهد بود. اما با استفاده از این هدر، IP واقعی کاربر حفظ شده و به سرور اصلی ارسال می‌شود تا برای تحلیل‌های امنیتی و گزارش‌گیری به کار برود.

X-Forwarded-Proto

هدر X-Forwarded-Proto مشخص می‌کند که پروتکل اولیه ارتباط با کاربر (HTTP یا HTTPS) چه بوده است. این هدر زمانی کاربرد دارد که ارتباط بین کاربر و سرور لبه با یک پروتکل، و ارتباط بین سرور لبه و سرور اصلی با پروتکل دیگر انجام شده باشد. اطلاعات این هدر برای تصمیم‌گیری در زمینه‌های امنیتی و هدایت درست درخواست‌ها مهم است.

X-Forwarded-For

این هدر مجموعه‌ای از IPها را شامل می‌شود که درخواست از آن‌ها عبور کرده است. در کنار IP کاربر نهایی، IP سرورهای واسط یا پروکسی نیز در این هدر درج می‌شوند. به این ترتیب می‌توان مسیر دقیق عبور درخواست از سرورهای متعدد تا هنگام رسیدن به سرور اصلی میزبان وب‌سایت را بررسی کرد.

X-Country-Code

شامل یک کد دوحرفی است که کشور مبدا درخواست را مشخص می‌کند. این اطلاعات با استفاده از IP کاربر و دیتابیس GeoIP استخراج می‌شود و برای تحلیل ترافیک بر اساس موقعیت جغرافیایی کاربرد دارد.

X-Request-Id

شناسه‌ای یکتا است که به هر درخواست اختصاص داده می‌شود. این شناسه در تمام مراحل پردازش همراه درخواست باقی می‌ماند و امکان ردیابی دقیق آن را در لاگ‌ها فراهم می‌کند. در صورت فعال بودن سرویس ارسال لاگ آبالون، می‌توان این مقدار را در لاگ‌سرور جست‌وجو و جزئیات کامل درخواست را بررسی کرد.

CDN-Loop

این هدر برای شناسایی و کنترل گردش غیرمجاز درخواست‌ها در شبکه CDN طراحی شده است. زمانی‌که یک درخواست بیش از حد مجاز در میان گره‌های مختلف شبکه تکرار شود، آبالون با استفاده از این هدر می‌تواند آن را شناسایی و در صورت نیاز مسدود کند.

نمونه مقدار:

CDN-Loop: abalon; count=1

در این مثال، عدد مشخص می‌کند که این درخواست تاکنون یک‌بار از زیرساخت عبور کرده است.

Accept-Encoding

این هدر مشخص می‌کند که چه الگوریتم‌های فشرده‌سازی از سوی مرورگر پشتیبانی می‌شوند. به‌طور پیش‌فرض، هنگام دریافت درخواست از سمت کاربر، مقدار gzip برای این هدر تنظیم می‌شود. اما اگر یکی از قابلیت‌های بهینه‌سازی مانند تغییر اندازه تصویر، شتاب‌دهی محتوا فعال باشد، مقدار این هدر به صورت زیر بازنویسی می‌شود:

Accept-Encoding: identity

در این حالت، فشرده‌سازی حذف می‌شود تا تغییرات لازم روی محتوا بدون تداخل با الگوریتم‌های فشرده‌سازی انجام شود.