Gzip چیست؟ آموزش فعال سازی Gzip
Gzip چیست و چگونه کار می کند؟ جی زیپ یکی از روشهای فشردهسازی و انتقال سریعتر فایل در دنیای اینترنت است. در واقع فشرده سازی Gzip سایز سایت را کاهش داده و سرعت بارگذاری سایت را افزایش میدهد.
در دنیای اینترنت حجم زیادی داده هرروز منتقل میشود که سایزهای متفاوت و اغلب بزرگی دارند. هر درخواست بازدید از سایت یا اپلیکیشن مقدار زیادی داده ردوبدل میکند که با توجه به میلیاردها درخواستی که هرروز انجام میشود، درمجموع حجم زیادی پیدا میکنند. با وجود این حجم انتقال داده، سرعت اینترنت نسبتاً بالاست و قادرید از سایتهای موردعلاقهتان بازدید کنید. اما چه عاملی انتقال پرسرعت داده در اینترنت را ممکن میکند؟
معرفی Gzip
باوجود در دسترس بودن اینترنت پرسرعت، مصرف پهنای باند برای بهینه سازی و دسترسی سریع و آسان به محتوا برای کاربران مهم است. برای خدمات دهندگان بزرگ، نیاز به انتقال صدها و هزاران فایل پرحجم میتواند تأثیر زیادی روی سرعت و عملکردشان داشته باشد. فشردهسازی این مشکل را تا حدودی حل میکند زیرا سایز فایل محتوا را قبل از خروج از سرور کم میکند. فشردهسازی جی زیپ میتواند با افزایش سرعت، برای سایت سودآوری ایجاد کند تا فروش هر کسبوکاری را تقویت کند.
شرکتهای میزبانی معتبر مانند هاست ایران، ابزار فشردهسازی Gzip را در تمامی هاستهای خود فعال به صورت پیش فرض فعال کردهاند، به همین دلیل است که انتخاب شرکت هاستینگ از اهمیت بالایی برای سایت شما برخوردار است.
[btn_callaction link=”https://design.hostiran.net/host-domain-landingpage/” label=”اطلاعات بیشتر” text=”برای مشاهده قیمتها و شرایط مربوط به هاست اشتراکی، خدمات میزبانی وب و همچنین انتقال سایت خود به دیتاسنتر هاست ایران بر روی دکمه روبهرو کلیک کنید. جهت کسب اطلاعات بیشتر و دریافت مشاوره با واحد فروش میزبانی وب به شماره ۰۲۱۲۸۳۱۰ تماس حاصل فرمایید.”]احتمالاً تابهحال یک فایل zip یا rar را در کامپیوترتان باز کردهاید و میدانید که هدف اصلی این است که داده را فشرده کنید تا بتوانید سریع و آسان ارسالش کنید. جی زیپ همین کار را برای فایلهای سایت انجام میدهد.
ابزار Gzip متداولترین متد فشردهسازی است که توسط خدمات دهندگان وب و مرورگرها استفاده میشود تا محتوا را برای انتقال بدون دردسر در اینترنت فشرده کنند. جی زیپ بیشتر روی کد و فایلهای متنی استفاده میشود و میتواند سایز فایلهای JavaScript، CSS و HTML را تا ۹۰% کوچک کند. فایلهای کوچکتر بازدیدکنندگان سایت را قادر میکنند تا آنها را بهراحتی دریافت کنند و سایت شما را با سرعت بیشتری بازدید کنند.
مقاله مرتبط: روش های کاهش حجم کدهای CSS
جی زیپ هیچ فایلی را در سمت سرور فشرده نمیکند بلکه فقط روی فایلهایی مانند HTML ، Stylesheets و JavaScript اجرا میشود و شامل تصاویر و سایر فایلهای سایت نمیشود.
فشردهسازی Gzip چگونه کار میکند؟
هنگامیکه سرور یک درخواست بازدید را برای یک صفحه وب دریافت میکند، هدر درخواست را چک میکند تا شناسایی کند که آیا مرورگر، جی زیپ را پشتیبانی میکند. اگر پشتیبانی کند، ماک آپ صفحه را قبل از اجرای فشردهسازی تولید میکند. سپس جی زیپ، مارک آپ را به داده فشرده تبدیل میکند تا به کاربر منتقل شود. هنگامیکه کاربر داده را دریافت میکند، مرورگرش آن را غیر فشرده میکند.
فشردهسازی جی زیپ یک روند پردازشگر-محور است که سطوح متفاوتی دارد. سطوح بالاتر منجر به تولید فایلهای کوچکتر میشود، اما مقدار زیادی از توان پردازشگر استفاده میشود. به همین دلیل توسعهدهندگان میتوانند درصد فشردهسازی را به همراه تعداد فایلها انتخاب کنند که همگی بر اساس نیاز سایت یا اپلیکیشن تعیین میشوند.
یک مطالعه تحقیقاتی در سال ۲۰۰۹ نشان داد که فشردهسازی، تأثیر بزرگی روی سایتهای مطرح دنیا دارد؛ مثلاً فیسبوک زمان لود صفحات را تا ۹.۴ ثانیه کاهش میدهد که معادل ۴۱۴% صرفهجویی در زمان لود است. البته صرفهجویی ۳۵۰ کیلوبایت در دنیای داده-محور امروز رقم بزرگی نیست؛ اما هنگامیکه تعداد میلیاردی کاربران فیسبوک را در نظر بگیریم، تغییر بزرگی ایجاد میکند.
یکی از گزارشهای گوگل هم نشان میدهد که متوسط ضریب فشردهسازی برای برخی از لایبرریهای محبوب جاوا اسکریپ و فریم ورکهای سی اس اس، ۷۷% است. باوجودیکه گوگل مقدار متوسط ۱۰.۳ کیلوبایت یا ۴۴% صرفهجویی حاصل از فشردهسازی را در صفحه خانهاش دارد؛ اما برخی فریم ورکهای سیاساس تا ۸۸% صرفهجویی دارند. در ترکیب با تکنیک کوچکسازی (Minification) و سایر ابزارهای کاهش سایز داده، فشردهسازی میتواند بهصورت چشمگیری سایز برخی از لایبرریهای متداول وب را کاهش دهد.
مقاله مرتبط: Minification چیست و چه مزیتی برای وبسایت شما دارد؟
فعال سازی Gzip
برای آگاهی از فعال بودن جی زیپ میتوانید از خدمات برخی سایتها و اکستنشنها استفاده کنید که شامل سایتهای Google page speed insigts و GTmetrix و Whatsmyip و Varvy و Prorank و اکستنشن مرورگر Wappalyzer است.
فشردهسازی از طریق تنظیمات وب سرور فعال میشود. انواع وب سرور هر کدام ساختار متفاوتی دارند که در ادامه مقاله آنها را توضیح میدهیم:
-
فعالسازی Gzip در WordPress
میتوانید از پلاگینهای cach که این ابزار را پشتیبانی میکند استفاده نمایید. پلاگینهایی مانند WP Rocket و W3 Total Cache بهصورت اتوماتیک کد فعالسازی را در فایل .htaccess سایت قرار میدهند. البته برای نوشتن در این فایل باید دسترسی لازم را داشته باشید.
-
فعالسازی Gzip در Joomla
به بخش Menu> General Settings بروید و در تب سرور، فشردهسازی جی زیپ را روی yes قرار دهید و سپس تغییرات را ذخیره کنید.
-
فعالسازی Gzip در htaccess
ابتدا فایل htaccess سایت را باز کنید و کد زیر را کپی کنید سپس تغییرات را ذخیره کنید. توجه داشته باشید فایل htaccess معمولاً مخفی است پس ابتدا ویژگی Show hidden files را فعال کنید.
مقاله مرتبط: فایل 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
باید کد زیر را در فایل .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
برای فعال شدن Gzip در 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–۶]. (?!. * SV1)”;
# Add a varying header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
-
فعالسازی Gzip در LiteSpeed
ابتدا به بخش Web Admin Console> Server> Tuning بروید و گزینه فعالسازی فشردهسازی را چک کنید که فعال باشد. اگر نبود، گزینه ویرایش را انتخاب کنید و سپس این ویژگی را فعال کنید.
نوع mime جدید را بهصورت زیر فعال کنید:
در کنسول مدیریت Lite Speed به آدرس زیر بروید:
Web Admin Console> Server> Tuning> GZIP Compression> Edit> Compressible Types
در این بخش، application / json را اضافه کنید، تغییرات را ذخیره کنید و رابط کاربری را دوباره راهاندازی کنید.
-
فعال ساری Gzip در IIS
از بخش مدیریت سرور به صفحه Select Role Services بروید، سپس گزینههای سرور وب را باز کنید، Performance را انتخاب کنید و مطمئن شوید که هر دو گزینه Static Content Compression و Dynamic Content Compression فعال هستند.
سپس IIS Manager را باز کنید و روی نام سرور کلیک کنید. روی گزینه فشردهسازی دوبار کلیک کنید و ۲ گزینه زیر را در پنجره باز شده تیک کنید:
Enable Static Content Compression
Enable Dynamic Content Compression
سپس روی دکمه Apply در سمت راست کلیک کنید. روی نام سایت هم کلیک کنید و درنهایت روی گزینه فشردهسازی دو بار کلیک کنید.
باید تنظیمات را در فایل تنظیمات وبسایت هم فعال کنید:
پسازاینکه مطمئن شدید که ماژول فشردهسازی صفحه در سمت سرور نصب شده است باید کد زیر را به سایت Web.Config اضافه کنید:
<system.webServer>
<httpCompression directory = ”% SystemDrive% \ inetpub \ temp \ IIS Temporary Compressed Files”>
<scheme name = “gzip” dll = “% Windir% \ system32 \ inetsrv \ gzip.dll” staticCompressionLevel = “۹ ″ />
<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 که میخواهید فشرده کنید را هم نشان میدهد. البته با این تنظیمات فقط mime غیر مخفی. فشرده میشود و انواع دیگر نادیده گرفته میشوند.
نتیجهگیری
در ۱۰ سال گذشته، صفحات وب معمولی سایزشان تا ۱.۲ مگابایت افزایش پیدا کرده است. هر چه تقاضای اطلاعات بیشتر میشود، تکنیکهای لازم برای انتقال سریع و مؤثر داده هم ضرورت پیدا میکنند. با توجه به اینکه افزایش ۱۰۰ ثانیهای سرعت لود صفحه میتواند فروش سایت را تا ۱% کاهش دهد، لازم است که خدمات دهندگان وب و کسبوکارها تا حداکثر توان مؤثر شوند.