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

Headerهای ارسالی CDN به کاربر و سرور اصلی

هنگامی که یک وب‌سایت از CDN ابر آروان استفاده می‌کند، درخواست‌های بازدیدکنندگان آن سایت به‌جای سرور اصلی میزبان سایت، به دست سرورهای CDN ابر آروان می‌رسند. در پاسخ به این درخواست‌ها، سرور لبه‌ی CDN تعدادی Header به سمت بازدیدکننده ارسال می‌کند که با استفاده از آن‌ها می‌توان از وضعیت درخواست ارسال‌شده و هم‌چنین پاسخ سرور آگاهی پیدا کرد.

هم‌چنین اگر درخواستی از سمت سرور لبه‌‌ی CDN به سمت سرور اصلی میزبان وب‌سایت ارسال شود، Headerهایی به این درخواست اضافه می‌شوند. این Headerها قابلیت شخصی‌سازی نیز دارند که در پلن سازمانی در دسترس کاربران قرار دارد.

در ادامه هریک از این Headerها و توضیحات آن‌ها بیان شده است.

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

X-Request-Id

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

هم‌چنین اگر کاربر از ارسال لاگ ابر آروان استفاده کند، می‌تواند با جست‌وجوی مقدار این Header در لاگ‌های لاگ‌سرور خود اطلاعات دقیقی از وضعیت درخواست به دست آورد.

X-Sid

کدی چهار رقمی و نشان‌دهنده‌ی شماره‌ی اختصاصی سرور لبه‌‌ی CDNای است که بازدیدکننده به آن متصل شده است.

Server-Timing

این Header نشان‌دهنده‌ی مدت زمانی است که سرور CDN محتوای مربوطه را دریافت کرده است. این دریافت می‌تواند از Cache موجود در CDN یا از سمت سرور اصلی میزبان سایت باشد. مقدار این Header به میلی‌ثانیه نوشته می‌شود.

X-Cache

زمانی‌که منابع وب‌سایت شما در سرورهای لبه‌‌ی ابر آروان Cache می‌شوند، ابر آروان با افزودن Header ویژه‌ای با نام X-Cache این امکان را برای شما فراهم می‌کند که بتوانید از وضعیت Cache این منابع آگاه شوید.

در این Header، وضعیت Cache می‌تواند یکی از موارد زیر باشد:

  • HIT ثبت این وضعیت در X-Cache بیان‌گر Cache بودن منبع درخواستی در سرور لبه‌ی ابر آروان و پاسخ‌دهی از سمت این سرورهاست.

  • MISS این وضعیت به‌معنای وجود نداشتن منبع درخواستی در سرور لبه‌‌ی ابر آروان و پاسخ‌دهی از سمت سرور اصلی میزبان سایت است.

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

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

  • BYPASS این وضعیت به‌معنای آن است که منبع درخواستی قابل Cache شدن نیست.

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

  • UPDATING این وضعیت بیان‌گر آن است که منبع درخواستی در سرور لبه‌ی آروان در حال به‌روزرسانی است و پاسخی که اکنون ارسال شده، نسخه‌ی قدیمی موجود در Cache این سرور بوده است. معمولن هنگامی این وضعیت اتفاق می‌افتد که منبع بزرگی (از نظر سایز) در حال Cache شدن در سرور لبه باشد.

X-Xss-Protection

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

Content-Security-Policy

هنگامی که و‌‌ب‌سایتی از پروتکل HTTPS استفاده کند اما هم‌چنان در صفحات HTML آن، لینک‌هایی با پروتکل HTTP وجود داشته باشد، برای حفظ امنیت، خطایی از سمت مرورگر نشان داده می‌شود که MiXed Content نام دارد و به معنای امکان ایجاد مشکل امنیتی روی لینک‌های HTTP است.

در پنل ابر آروان و در قسمت تنظیمات HTTPS گزینه‌ای وجود دارد که با استفاده از آن می‌توان این مشکل را برطرف کرد.

با فعال کردن این قابلیت، هدر Content-Security-Policy به Headerهای ارسالی به سمت کاربر اضافه می‌شود و از این راه، به مرورگر اطلاع داده می‌شود که اگر با چنین مشکلی مواجه شد، لینک مورد نظر را از HTTP به HTTPS تغییر دهد.

Strict-Transport-Security

با فعال‌سازی HSTS در پنل CDN ابر آروان این Header به Headerهای ارسالی به سمت کاربر اضافه می‌شود و به این ترتیب، به مرورگر اطلاع داده می‌شود که تا بازه زمانی مشخصی (مانند یک ماه)، اگر نخستین درخواست وب‌سایت مورد نظر HTTP بود، آن را به‌شکل خودکار از سمت مرورگر به یک درخواست HTTPS تبدیل کند.

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

X-Sid

کدی چهار رقمی و شماره‌ی اختصاصی سرور CDNای است که درخواست از آن سرور ارسال شده است.

X-Real-IP

Header استاندارد HTTP است. هنگامی که وب‌سایتی از CDN استفاده می‌کند، اگر درخواستی از سمت بازدیدکننده برای وب‌سایت مورد نظر ارسال شود، این درخواست نخست به دست سرورهای لبه CDN می‌رسد و سپس برای سرور اصلی وب‌سایت مورد نظر ارسال می‌شود. بنابراین در قسمت IP ارسال‌کننده‌ی درخواست، به جای IP واقعی کاربر، IP سرور CDN قرار می‌گیرد.

از آن‌جایی که برای بسیاری از فرآیندهای تحلیلی و امنیتی نیاز به IP واقعی کاربر است، سرور CDN از این هدر HTTP استفاده می‌کند تا بتواند با کمک آن، IP واقعی کاربر را به سرور اصلی ارسال کند.

X-Forwarded-Proto

این Header یک هدر De-facto Standard است و مشخص‌کننده‌ی پروتکلی است که با استفاده از آن‌، درخواست در مرحله‌ی اول وارد سرورهای CDN شده است. برای نمونه اگر درخواستی از سمت کاربر و با پروتکل HTTP به سمت CDN، و از CDN با پروتکل HTTPS به سمت سرور اصلی ارسال شده باشد، این Header مقدار HTTP را نشان می‌دهد.

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

X-Forwarded-For

این Header مشابه هدر X-Real-IP است با این تفاوت که در آن IP سرورهای پروکسی‌ای که درخواست کاربر از آن‌ها عبور کرده است تا به سرور اصلی میزبان سایت برسد نیز، در کنار IP اصلی کاربر قرار می‌گیرد. در واقع این Header یک آرایه از IPها و نشان‌دهنده‌ی ترتیب عبور درخواست از سرورهای متعدد تا زمان رسیدن به سرور اصلی میزبان سایت است.

X-Country-Code

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

X-Request-Id

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

هم‌چنین اگر کاربر از ارسال لاگ ابر آروان استفاده کند، می‌تواند با جست‌وجوی مقدار این Header در لاگ‌های لاگ‌سرور خود اطلاعات دقیقی از وضعیت درخواست به دست آورد.

CDN-Loop

این Header به آروان کمک می‌کند تا تشخیص دهد که درخواست، پیش از آن‌که به عنوان یک Loop مسدود شود، چند بار می‌تواند وارد شبکه‌ی آروان شود. برای نمونه:

CDN-Loop: arvancloud; count=1

Accept-Encoding

به‌شکل پیش‌فرض این Header برای درخواست‌های دریافتی با مقدار gzip تنظیم می‌شود. اگر یکی از ماژول‌های تغییر اندازه‌ی تصویر، شتاب‌دهی و یا یک CDN-App در بازارچه فعال باشد، ابر آروان مقدار این Header را به‌شکل زیر قرار می‌دهد:

Accept-Encoding: identify