Gzip چیست؟ آشنایی با این روش فشرده سازی اطلاعات در شبکه

Gzip و کاربرد آن چیست؟ یک روش فشرده سازی فایل ها جهت انتقال سریعتر در شبکه می باشد و همچنین یک فرمت فایل نیز می باشد. Gzip باعث کاهش حجم سایت و افزایش سرعت لود سایت میشود.
آشنایی با روش فشرده سازی Gzip
فشرده سازی، حجم فایل ها را کاهش می دهد و این امکان را برای وب سرور فراهم می کند که با سرعت بیشتری کاربران سایت را مشاهده کنند.
حتما شما نیز تا کنون در سیستم خودتان فایلی را به حالت فشرده zip یا rar تغییر داده ایدو میدانید که هدف اصلی این فایلها فشردهسازی اطلاعات میباشد تا جدا از اینکه حجم کمتری در سیستم بگیرد، انتقال آن هم سریعتر و راحتتر خواهد بود،حال عمل Gzip همین کار را برای فایلهایی که در سایت موجود است انجام میدهد.
فایلهای با حجم کمتر به بازدیدکنندگان سایت شما اجازه میدهد تا فایلهای سایت را سریعتر دریافت کنند و در نتیجه سایت شما را سریعتر مشاهده کنند. لازم بذکر است که تابع Gzip هر فایلی در سمت سرور را فشرده سازی نمیکند، فشرده سازی صرفا منوط به فایلهایی مانند فایلهای HTML، فایلهای استایلدهی Stylesheets و جاوااسکریپت JavaScript میباشد و شامل تصاویر و بقیه فایلهای موجود دیگر نیست.
چگونگی کارکرد Gzip
وقتی کاربر آدرس سایتی را در مروگر درج می کند، مرورگر اول یک درخواست از سمت header یعنی content-encoding: gzip ارسال میکند تا بررسی کند آیا جواب این درخواست مثبت است یا منفی. اگر درخواست از سمت سرور شناسایی شد و مثبت بود، سرور فایلهای فشرده شده را به مرورگر ارسال میکند، درغیر این صورت سرور فایلهای غیر فشرده و سنگین را به مرورگر ارسال میکند. همه مرورگرهای جدید Gzip را پشتیبانی می کنند.
Gzip چقدر میتونه موثر باشه؟
مزیت استفاده از Gzip compression این است که فشرده سازی فایل های HTML و CSS شما با Gzip معمولا حدود پنجاه تا هفتاد درصد حجم فایل را ذخیره می کند. این به این معنی است که زمان بارگذاری صفحات شما کمتر شده و پهنای باند کمتر نیز مورد استفاده قرار میگیرد.
آیا Gzip فعال است؟
سایت ها و افزونه های زیادی برای بررسی وجود این قابلیت هست، از جمله می توان به سایت های Varvy و Prorank اشاره کرد و همچنین می توان از افزونه مرورگری Wappalyzer استفاده کرد.
چگونگی فعال سازی Gzip Compression
فشرده سازی از طریق تنظیمات وب سرور فعال می شود. وب سرور های مختلف دستورالعمل های مختلفی دارند که در ادامه به بررسی آن می پردازیم.
فعال سازی Gzip در وردپرس
جهت فعالسازی Gzip در وردپرس می توانید از پلاگین های کش که از این قابلیت پشتیبانی می کنند، استفاده کنید. پلاگینهایی مانند WP Rocket و W3 Total Cache بصورت خودکار کد مربوط به فعالساری را در فایل .htaccess سایت قرار می دهند. البته نیاز است دسترسی لازم برای نوشتن در فایل .htaccess را داده باشید.
آموزش فعال سازی Gzip در جوملا
جهت فعالسازی Gzip در جوملا وارد مدیریت جوملا شده سپس در منوی سایت> تنظیمات کلی وارد شوید و در تب سرور گزینه فشرده سازی Gzip را روی بلی قرار داده و سپس تغییرات را ذخیره نمائید.
فعال سازی Gzip در htaccess
جهت فعالسازی Gzip در htaccess، ابتدا فایل .htaccess سایت را باز نموده و کد زیر را در آن درج نمائید و سپس تغییرات را ذخیره کنید.
نکته: فایل .htaccess در حالت عادی مخفی می باشد و نیاز است قابلیت Show hidden files فعال باشد.
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
فعالسازی Gzip در Apache
کد زیر را می بایست همانند کد بالا در فایل .htaccess قرار داد.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
فعالسازی Gzip در Nginx
برای فعال کردن فشرده سازی در وب سرور Nginx، لازم است کد زیر را به فایل کانفیگ خود اضافه کنید.
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Disable for IE < 6 because there are some known problems
gzip_disable “MSIE [1-6].(?!.*SV1)”;
# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
آموزش فعالسازی Gzip در Litespeed
جهت فعال کردن فشرده سازی در وب سرورهای Litespeed، در قسمت Web Admin Console > Server > Tuning رفته و بررسی کنید که گزینه enable compression فعال است یا خیر، اگر فعال نبود گزینه edit را انتخاب نموده و سپس این قابلیت را فعال کنید.
جهت فعال کردن mime type جدید نیز بصورت زیر اقدام کنید:
در کنسول مدیریت لایت اسپید مسیر زیر را دنبال کنید:
Web Admin Console > Server > Tuning > GZIP Compression > Edit > Compressible Types
در این (Compressible Types) قسمت mime type جدید مدنظر در این مثال application/json را اضافه نموده و تغییرات را ذخیره و رابط گرافیکی لایت اسپید را ریستارت نمائید.
فعال سازی Gzip در IIS
ابتدا از بخش server manager به صفحه Select Role Services مراجعه کرده و سپس گزینه های Web Server و در ادامه Performance را باز کرده و از فعال بودن دو گزینه Static Content Compression و Dynamic Content Compression اطمینان یابید.
سپس IIS Manager را باز نموده و برروی نام سرور کلیک نمایید. برروی گزینه Compression دابل کلیک نمایید، در صفحه باز شده تیک دو گزینه زیر را فعال کرده و برروی دکمه Apply موجود در بخش سمت راست کلیک نمایید.
Enable Static Content Compression
Enable Dynamic Content Compression
برروی نام سایت مورد نظر خود کلیک کرده و در قسمت Compression آن مجدداً دو گزینه اعلام شده را فعال نمایید.
حال نیاز است تنظیمات را در فایل وبکانفیگ سایت موردنظر نیز بصورت زیر فعال کنید:
پس از اطمینان از نصب ماژول فشرده سازی صفحات وب در سمت تنظیمات سرور، اکنون لازم است کد زیر را به Web.Config سایت اضاف کنید:
<system.webServer>
<httpCompression directory=”%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files”>
<scheme name=”gzip” dll=”%Windir%\system32\inetsrv\gzip.dll” staticCompressionLevel=”9″ />
<dynamicTypes>
<add mimeType=”text/*” enabled=”true” />
<add mimeType=”message/*” enabled=”true” />
<add mimeType=”application/x-javascript” enabled=”true” />
<add mimeType=”application/javascript” enabled=”true” />
<add mimeType=”application/json” enabled=”true” />
<add mimeType=”application/json; charset=utf-8″ enabled=”true” />
<add mimeType=”application/atom+xml” enabled=”true” />
<add mimeType=”application/xaml+xml” enabled=”true” />
<add mimeType=”*/*” enabled=”false” />
</dynamicTypes>
<staticTypes>
<add mimeType=”text/*” enabled=”true” />
<add mimeType=”message/*” enabled=”true” />
<add mimeType=”application/x-javascript” enabled=”true” />
<add mimeType=”application/javascript” enabled=”true” />
<add mimeType=”application/json” enabled=”true” />
<add mimeType=”application/json; charset=utf-8″ enabled=”true” />
<add mimeType=”application/atom+xml” enabled=”true” />
<add mimeType=”application/xaml+xml” enabled=”true” />
<add mimeType=”*/*” enabled=”false” />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression=”true” doDynamicCompression=”true” />
</system.webServer>
نکته: در اینجا تنظیمات مخصوص نحوهی فعال سازی فشرده سازی صفحات پویا و فایلهای استاتیک را مشاهده میکنید. در این تنظیمات محل قرارگیری فایلهای موقتی فشرده شده توسط این ماژول و همچنین mime type های مدنظر جهت فشرده سازی، ذکر شدهاند. با این تنظیمات، تنها mime type هایی که به صورت صریح ذکر شدهاند فشرده خواهند شد و از سایر mime types صرفنظر میشود.
دیدگاه شما