فشرده سازی gzip چیست ؟
وقتی کاربر از وب سایت شما بازدید می کند برای ارائه پرونده های در خواست شده با سرور شما تماس می گیرد. هر چه این فایل ها بزرگتر باشند زمان بیشتری نیاز دارند تا بتوانند به مرورگر دسترسی پیدا کنند و روی صفحه ظاهر شوند. Gzip قبل از ارسال پرونده ها به مرورگر آنها را فشرده می کند و به طور چشمگیری زمان انتقال را کاهش می دهد زیرا پرونده ها بسیار کوچکتر هستند. از نظر هزینه در مقابل سود، در صورتی که gzip را در بهینه سازی صفحات خود استفاده نکنید ممکن است در سرعت بارگذاری شما بسیار تاثیر گذار باشد.
چگونه کارمی کند؟
Gzip در واقع یک ایده نسبتا ساده است که در زمان استفاده خوب از آن بسیار قدرتمند است. Gzip رشته های مشابه را درون یک فایل متنی قرار می دهد و آن رشته ها را به طور موقت جایگزین می کند تا اندازه کلی پرونده کوچکتر شود. دلیل اینکه در محیط وب gzip خوب کار می کند این است که فایل های css و فایل های html از متن تکراری استفاده می کنند و فضای زیادی دارند. از انجا که gzip رشته های متداول را فشرده می کند. این می تواند سایز صفحات و شیوه نامه ها (style sheet) را تا 70 درصد کاهش دهد!
Gzip باید در وب سرور شما فعال شود. هنگامی که یک مرور گر از وب سرور بازدید می کند ، بررسی می کند سرور gzip را فعال کرده و صفحه وب را در خواست می کند. اگر فعال باشد پروند gzip که به طور قابل توجهی کوچکتر است را دریافت می کند در غیر این صورت هنوز صفحه را دریافت می کند اما فقط نسخه غیرفشرده سازی شده که حجم بسیار زیادی دارد دریافت می کند.
چرا مهم است ؟
دلیل اصلی اهمیت gzip ،این می باشد که باعث می شود مدت زمان لازم برای یک وب سایت جهت انتقال پرونده ها و شیوه نامه ها کاهش یابد و در نهایت زمان بارگذاری وب سایت شما کاهش می یابد.
چگونه GZIP فعال می شود ؟
روش های مختلفی برای تنظیم GZIP بسته به نوع وب سرویس (IIS ، Apache و غیره) وجود دارد
اگر وب سرور شما iis است از دستور العمل ماکروسافت جهت فعال سازی gzip می توانید استفاده کنید که در مقالات بعدی این روش آموزش داده خواهد شد
برای آپاچی شما باید خطوط زیر را به فایل .htaccess خود اضافه کنید .
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>