Loading...

راهنمای CDN.com.tr

فشرده‌سازی Brotli و gzip

لبه پاسخ‌های متنی را به‌طور خودکار فشرده می‌کند: Brotli برای مرورگرهایی که از آن پشتیبانی می‌کنند و gzip برای بقیه. روشی را که هر دامنه استفاده می‌کند در کارت فشرده‌سازی ببینید و آن را با curl تأیید کنید.

فشرده‌سازی Brotli و gzip

لبه پاسخ‌های متنی را به‌طور خودکار فشرده می‌کند: Brotli برای مرورگرهایی که از آن پشتیبانی می‌کنند و gzip برای بقیه. روشی را که هر دامنه استفاده می‌کند در کارت فشرده‌سازی ببینید و آن را با curl تأیید کنید.

راهنماهای مرتبط

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

هنگام آزمایش

خواندن وضعیت کش: HIT، MISS، BYPASS، EXPIRED

سرآیند X-Proxy-Cache-MT نشان می‌دهد پاسخ از کش آمده است یا نه.

باز کردن موضوع
قوانین تحویل

تعریف رفتار کش با Add Rule

قوانینی که در همین صفحه فهرست شده‌اند؛ یادداشت زیر هر مقدار فشرده‌سازی یکی از آن‌ها را نام می‌برد.

باز کردن موضوع

مسیر در پنل

  1. پنل مدیریت
  2. قوانین تحویل
  3. بهینه‌سازی
  4. فشرده‌سازی

پیش‌نیازها

  • دامنه‌ای که یک قانون تحویل آن را ارائه می‌دهد: کارت فشرده‌سازی دامنه‌هایی را فهرست می‌کند که قوانین حساب ارائه می‌دهند.
  • curl، یا ابزارهای توسعه‌دهندهٔ مرورگرتان، برای بررسی.

راهنمای گام‌به‌گام

1

کارت فشرده‌سازی را بخوانید

کارت، فشرده‌سازی هر دامنه را روی HTTP و HTTPS نشان می‌دهد.

  • قوانین تحویل را باز کنید و به تب بهینه‌سازی بروید.
  • در کارت فشرده‌سازی، دامنهٔ خود را زیر دامنه پیدا کنید.
  • مقادیر زیر HTTP و HTTPS و یادداشت زیر هر کدام را بخوانید.

نتیجه مورد انتظار: دامنه‌ای که با تنظیمات پیش‌فرض ارائه می‌شود Brotli و gzip را نشان می‌دهد، با یادداشتی مثل از قانون شمارهٔ … یا از قانون بررسی گواهی.

2

Brotli و gzip را با curl بررسی کنید

یک فایل متنی دست‌کم 256 بایتی، مثل یک فایل CSS یا JavaScript، را یک بار با درخواست Brotli و یک بار با درخواست gzip دریافت کنید.

  • یک درخواست GET با Accept-Encoding: br بفرستید و سرآیندهای پاسخ را بخوانید.
  • آن را با Accept-Encoding: gzip تکرار کنید.

نتیجه مورد انتظار: content-encoding: br در پاسخ اول و content-encoding: gzip در پاسخ دوم، هر کدام با vary: Accept-Encoding.

معادل cdnctl
curl -s -o /dev/null -D - -H 'Accept-Encoding: br' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):'
curl -s -o /dev/null -D - -H 'Accept-Encoding: gzip' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):'
3

اندازه‌ها را مقایسه کنید

حجم دانلود نشان می‌دهد فشرده‌سازی روی فایل‌های خود شما چقدر صرفه‌جویی می‌کند.

  • فایل را یک بار با Accept-Encoding: br و یک بار بدون سرآیند Accept-Encoding دانلود کنید.
  • دو عدد بایت را مقایسه کنید.

نتیجه مورد انتظار: دو عدد بایت: اول اندازهٔ فشرده، سپس اندازهٔ غیرفشرده.

معادل cdnctl
curl -s -o /dev/null -w '%{size_download}\n' -H 'Accept-Encoding: br' https://www.example.com/assets/app.css
curl -s -o /dev/null -w '%{size_download}\n' https://www.example.com/assets/app.css

راستی‌آزمایی

  • curl -s -o /dev/null -D - -H 'Accept-Encoding: br' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):' → content-encoding: br، vary: Accept-Encoding
  • curl -s -o /dev/null -D - -H 'Accept-Encoding: gzip' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):' → content-encoding: gzip، vary: Accept-Encoding
  • curl -s -o /dev/null -w '%{size_download}\n' -H 'Accept-Encoding: br' https://www.example.com/assets/app.css → اندازهٔ فشرده؛ همان دستور بدون سرآیند Accept-Encoding → اندازهٔ غیرفشرده

موارد کاربرد

سایتی را پشت CDN برده‌اید و می‌خواهید مطمئن شوید HTML، CSS، JavaScript و JSON آن فشرده به بازدیدکنندگان می‌رسند، بدون اینکه فشرده‌سازی را روی مبدأ خود راه‌اندازی کنید.

جریان کاری سریع

  1. قوانین تحویل حساب را باز کنید و به تب بهینه‌سازی بروید.
  2. در کارت فشرده‌سازی که با خودکار مشخص شده است، سطر دامنهٔ خود را پیدا کنید.
  3. ستون‌های HTTP و HTTPS را بخوانید: Brotli و gzip یعنی هر دو روش برای آن پروتکل روشن‌اند و یادداشت زیر مقدار، قانونی را که مقدار از آن می‌آید نام می‌برد. فقط gzip، فقط Brotli یا خاموش یعنی قدیمی‌ترین قانون دامنه با همین تنظیم ذخیره شده است؛ یادداشت آن قانون را نام می‌برد.
  4. یک فایل CSS یا JavaScript را با curl درخواست دهید و سرآیند content-encoding را بخوانید.

بررسی‌ها

  • لبه بر اساس Content-Type پاسخ فشرده می‌کند: HTML، CSS، JavaScript، JSON (application/json، application/ld+json، application/manifest+json)، XML (از جمله فیدهای RSS و Atom)، متن ساده، SVG، آیکون‌های ICO، WebAssembly و فونت‌های TTF، OTF و EOT. انواع محتوای دیگر همان‌طور که هستند ارسال می‌شوند.
  • JPEG، PNG، WebP و دیگر قالب‌های تصویر به‌جز SVG و ICO، فونت‌های WOFF و WOFF2، ویدیو و آرشیوهای zip از قبل قالب‌های فشرده‌اند و همان‌طور که هستند ارسال می‌شوند.
  • پاسخ‌هایی با اندازهٔ معلوم کمتر از 256 بایت بدون فشرده‌سازی ارسال می‌شوند.
  • فشرده‌سازی روی پاسخ‌های 200، 403 و 404 اعمال می‌شود.
  • پاسخ‌های فشرده Vary: Accept-Encoding دارند، تا کش‌های میانی نسخه‌های فشرده و غیرفشرده را از هم جدا نگه دارند.
  • مرورگرها Brotli را فقط روی HTTPS درخواست می‌کنند؛ روی HTTP ساده همان مرورگر gzip می‌گیرد.
  • فشرده‌سازی را لبه انجام می‌دهد، پس لازم نیست مبدأ شما این کار را بکند. پاسخی که از قبل فشرده می‌رسد (سرآیند Content-Encoding دارد) دوباره فشرده نمی‌شود.
  • وقتی یک قانون را ویرایش می‌کنید، برای هر یک از دامنه‌های آن که فشرده‌سازی‌اش از یک قانون قدیمی‌تر می‌آید، یادداشت برای هر دامنه ظاهر می‌شود و آن قانون را نام می‌برد.
  • فشرده‌سازی برای هر دامنه با قدیمی‌ترین قانون آن تعیین می‌شود، نه برای هر قانون: مقداری که کارت نشان می‌دهد، از جمله فقط gzip، فقط Brotli یا خاموش، روی همهٔ قوانین دامنه در آن پروتکل اعمال می‌شود و نمی‌توان آن را در کارت تغییر داد.

پرسش‌های متداول

آیا باید فشرده‌سازی را روشن کنم؟

نه. فشرده‌سازی خودکار است: قوانین تحویل با Brotli و gzip ساخته می‌شوند و کارت فشرده‌سازی با خودکار مشخص شده است.

چرا بررسی من هیچ سرآیند content-encoding نشان نمی‌دهد؟

پنج چیز را بررسی کنید: کارت فشرده‌سازی برای آن دامنه و پروتکل Brotli و gzip را نشان دهد، درخواست فشرده‌سازی بخواهد (curl تا خودتان اضافه نکنید هیچ سرآیند Accept-Encoding نمی‌فرستد)، فایل از انواعی باشد که فشرده می‌شوند، دست‌کم 256 بایت باشد و وضعیت 200، 403 یا 404 باشد. دستورهای تأیید زیر را همان‌طور که نوشته شده‌اند اجرا کنید.

Brotli یا gzip: بازدیدکننده کدام را می‌گیرد؟

Brotli برای مرورگرهایی که از آن پشتیبانی می‌کنند، gzip برای بقیه. لبه سرآیند Accept-Encoding را که مرورگر می‌فرستد می‌خواند، و مرورگرها Brotli را فقط روی HTTPS درخواست می‌کنند.

«ارائه نمی‌شود» در کارت به چه معناست؟

هنوز هیچ قانون تحویلی آن دامنه را روی آن پروتکل ارائه نمی‌دهد. وقتی قانونی دامنه را روی HTTP یا HTTPS ارائه دهد، کارت فشرده‌سازی آن را در آنجا نشان می‌دهد.