Gzip یک روش فشرده سازی فایل ها (کم حجم کردن آن ها) جهت انتقال سریعتر در شبکه است.
Gzip همچنین یک فرمت فایل نیز می باشد.
Gzip باعث کاهش حجم سایت و افزایش سرعت لود سایت میشود، فشرده سازی حجم فایل ها را کاهش می دهد و این امکان را برای وب سرور فراهم می کند که با سرعت بیشتری کاربران سایت را مشاهده کنند.
حتما شما نیز تا کنون در سیستم خودتان فایلی را به حالت فشرده zip یا rar تغییر داده ایدو میدانید که هدف اصلی این فایلها فشردهسازی اطلاعات میباشد تا جدا از اینکه حجم کمتری در سیستم بگیرد، انتقال آن هم سریعتر و راحتتر خواهد بود،حال عمل Gzip همین کار را برای فایلهایی که در سایت موجود است انجام میدهد.
فایلهای با حجم کمتر به بازدیدکنندگان سایت شما اجازه میدهد تا فایلهای سایت را سریعتر دریافت کنند و در نتیجه سایت شما را سریعتر مشاهده کنند. لازم بذکر است که تابع Gzip هر فایلی در سمت سرور را فشرده سازی نمیکند، فشرده سازی صرفا منوط به فایلهایی مانند فایلهای HTML ، فایلهای استایلدهی (stylesheets) و جاوااسکریپت (JavaScript) میباشد و شامل تصاویر و بقیه فایلهای موجود دیگر نیست.
چطور Gzip compression کار می کند؟
وقتی کاربر آدرس سایتی را در مروگر درج می کند، مرورگر اول یک درخواست از سمت header یعنی “content-encoding: gzip” ارسال میکند تا بررسی کند آیا جواب این درخواست مثبت است یا منفی.
اگر درخواست از سمت سرور شناسایی شد و مثبت بود، سرور فایلهای فشرده شده را به مرورگر ارسال میکند، درغیر این صورت سرور فایلهای غیر فشرده و سنگین را به مرورگر ارسال میکند. همه مرورگرهای جدید gzip را پشتیبانی می کنند.
فشرده سازی gzip چقدر موثر است؟
مزیت استفاده از Gzip compression این است که فشرده سازی فایل های HTML و CSS شما با gzip معمولا حدود پنجاه تا هفتاد درصد حجم فایل را ذخیره می کند. این به این معنی است که زمان بارگذاری صفحات شما کمتر شده وپهنای باند کمتر نیز مورد استفاده قرار میگیرد.
نحوه بررسی فعال بودن gzip
از طریق سایت varvy.com می توانید فعال بودن gzip را بررسی کنید
نحوه فعالسازی Gzip compression
فشرده سازی از طریق تنظیمات وب سرور فعال می شود
Webserver های مختلف دستورالعمل های مختلفی دارند (که در ادامه توضیح داده می شود)
در این مقاله رایج ترین روش های فعال سازی فشرده سازی از جمله در وردپرس، جوملا، .htaccess و وبسرورهای Apache، Nginx و IIS تشریح می شود.
فعال سازی gzip در وردپرس
جهت فعالسازی gzip در وردپرس می توانید از پلاگین های کش که از این قابلیت پشتیبانی می کنند، استفاده کنید. پلاگینهایی مانند WP Rocket و W3 Total Cache بصورت خودکار کد مربوط به فعالساری را در فایل .htaccess سایت قرار می دهند. البته نیاز است دسترسی لازم برای نوشتن در فایل .htaccess را داده باشید.
فعال سازی gzip در جوملا
جهت فعالسازی gzip در جوملا وارد مدیریت جوملا شده سپس در منوی سایت – تنظیمات کلی وارد شوید و در تب سرور گزینه فشرده سازی Gzip را روی بلی قرار داده و سپس تغییرات را ذخیره نمائید.
فعال سازی gzip در htaccess
جهت فعالسازی gzip در htaccess، ابتدا فایل .htaccess سایت را باز نموده و کد زیر را در آن درج نمائید و سپس تغییرات را ذخیره کنید.
<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
اگر کد بالا یه شما در فعال سازی قابلیت gzip کمک نکرد میتوانید کد زیر را جایگزین کد های داخل فایل .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 در IIS
جهت فعالسازی 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 صرفنظر میشود.
فعال سازی gzip در litespeed
جهت فعال کردن فشرده سازی در وب سرورهای Litespeed، در قسمت Web Admin Console → Server → Tuning رفته و بررسی کنید که گزینه enable compression فعال است یا خیر، اگر فعال نبود گزینه “edit” را انتخاب نموده و سپس این قابلیت را فعال کنید.
جهت فعال کردن mimetype جدید نیز بصورت زیر اقدام کنید:
در کنسول مدیریت لایت اسپید مسیر زیر را دنبال کنید:
Web Admin Console → Server → Tuning → GZIP Compression → Edit → Compressible Types
در این قسمت mimetype جدید مدنظر در این مثال application/json را اضافه نموده و تغییرات را ذخیره و رابط گرافیکی لایت اسپید را ریستارت نمائید.
نتیجه گیری:
درصورتیکه بدنبال راهکاری جهت بهینه سازی سایت، افزایش سرعت و کاهش ترافیک مصرفی می باشید، فعالسازی Gzip compression یکی از موارد موثر خواهد بود.
هیچ نظری وجود ندارد