فهرست محتوا
سرعت در یک سایت اینترنتی بیشتر از آنچه که به نظر می رسد می تواند در بازدهی تاثیر داشته باشد. وقتی شخصی می خواهد به سایت شما وارد شود، اولین چیزی که با آن در ارتباط خواهد بود سرعت سایت شماست. حتی می توان گفت سرعت قبل از ورود به سایت هم می تواند برای شما امتیازاتی داشته باشد که در ادامه به بررسی آنها می پردازیم. اما نکته اصلی اینجاست که این سرعت را با چه روش هایی می توان ایجاد نمود. عموما روش های متعددی برای افزایش سرعت پیشنهاد می شود که یکی از مطمئن ترین و همینطور بهترین این روش ها استفاده از مکانیزمی به نام Gzip است. در ادامه این مقاله قصد داریم تا در مورد اینکه Gzip چیست و چگونه میتواند به ما کمک کند و ما برای استفاده از آن باید چه کار کنیم، توضیحاتی را بیان کنیم.
قبل از اینکه به این سوال که Gzip چیست بپردازیم، لازم است بیشتر در مورد نقش سرعت سایت و تاثیراتی که می تواند روی سایت شما داشته باشد صحبت کنیم.
نقش سرعت سایت در بازدهی
وقتی که شما قصد داشته باشید تا کسب و کار خود را به صورت اینترنتی در آورده و یا به هر دلیل دیگری یک سایت برای خود داشته باشید، قطعا انتظار بازدهی از سایت مورد نظر خود داشته و می خواهید افرادی که در جامعه هدف مخاطبان شما قرار دارند وارد سایت شما شده و از آن استفاده کنند. برای این کار لازم است تا سایت شما یک مجموعه از ویژگی ها را داشته باشد تا بتواند تجربه کاربری مورد نیاز برای بازگشت کاربران و تبدیل مخاطب تازه وارد را به یک مشتری وفادار را برای شما فراهم کند.
یکی از اصلی ترین مواردی که باید سایت شما برای این کار به آن توجه ویژه ای داشته باشد این است که از سرعت لازم برای جلب رضایت کاربر برخوردار باشد. بر اساس آمار ها در حدود 70 درصد از کاربران اگر لود شدن وبسایت شما بیش از 5 ثانیه طول بکشد سایت را ترک خواهند کرد و این مساله ای است که ما اصلا نمی خواهیم اتفاق بیفتد. مورد دیگری که باید به آن توجه داشته باشید بحث سئو و دیده شدن سایت شما در موضوع مورد نظر است.
یکی از مهمترین معیار های گوگل برای اینکه سایت شما در بین اولین نتایج جستجو نمایش داده شود، این است که سرعت سایت شما بالا باشد. در صورتی که شما معیار سرعت را نداشته باشید، به طور خودکار از رده های بالای جست و جو پایین خواهید آمد. استفاده از یک سرویس میزبانی خوب مانند هاست وردپرس، هاست ابری و یا سرور مجازی می تواند در این کار به شما کمک کند. اما آنچه که شما نیاز دارید این است که سایت خود را به گونه ای بنا کنید که بدون نیاز به منابع زیاد و با توجه به کیفیت پایین اینترنت ایران بتواند در سریع ترین زمان ممکن محتوای مورد نظر را برای کاربر به نمایش بگذارد. برای اطلاعات بیشتر در مورد سرعت و کارایی های آن و همینطور راه های بررسی سرعت سایت می توانید به مقاله آموزش GTMetrix مراجعه کنید.
در این مقاله می خواهیم در مورد یکی از روش هایی که می تواند سرعت سایت را به گونه ای بالا ببرد که برای هر دو سمت سئو و تجربه کاربری مفید باشد صحبت کنیم و ببینیم که Gzip چیست و چگونه این کار را برای ما انجام خواهد داد.
Gzip چیست
پاسخ به سوال Gzip چیست در بسیاری از منابع به صورت سرسری داده می شود و بدون اینکه اطلاعات کافی در خصوص چگونگی انجام کار توسط آن ارائه شود از کنار آن رد خواهند شد. اما در اینجا قرار است که با هم ببینیم که Gzip چیست و واقعا چه کاری را برای ما انجام می دهد و به چه دردی می خورد.
در جواب به سوال Gzip چیست باید گفت که Gzip یک نوع از فشرده سازی است که با روش های خاص گرد کردن داده ها باعث می شود تا داده شما اندازه خود را به مقداری در حدود 40 الی 70 درصد از دست بدهد. در نظر داشته باشید این داده که 70 درصد اندازه خود را از دست داده یک صفحه وب باشد! بدیهی است که وقتی این اتفاق بیافتد سرعت بارگذاری صفحه نیز تا حد قابل قبولی بالا خواهد رفت. اما این فشرده سازی قدرتمند Gzip چیست و از کجا سر و کله آن پیدا شده است!؟
خواستگاه Gzip چیست
Gzip یک فشرده سازی قدرتمند است که در حال حاضر توسط خیلی از وبسایت ها استفاده می شود و شما هم می توانید همین امروز این امکان را به صورت رایگان برای خود فراهم کنید. اما منشا Gzip چیست و برای اولین بار چطور بوجود آمده است!؟
حدود 28 سال پیش در سال 1992 بنیاد نرم افزاری GNU که یکی از بزرگترین جوامع برنامه نویسی در راستای تدوین برنامه ها و نرم افزار های رایگان و منبع باز است، در حال ایجاد یک کدینگ برای فشرده سازی بود که بتواند جایگزین یکی از کد های موجود به نام LZW شود و در این بین به روشی خوب برای کم کردن سایز کدها و فایل ها رسید.
در مورد کدهای فشرده سازی همین قدر توضیح خواهیم داد که این کد ها روش های محاسباتی هستند که شما با استفاده از آنها می توانید یک کد بزرگتر را با انجام اعمال ریاضی و منطقی در ابتدا مرتب سازی کرده و بعد به صورت یک فایل فشرده با حجمی کمتر تبدیل کنید. این فایل کوچک شده با استفاده از اعمال منطقی و ریاضی دیگری که با یک کلید عمومی که در اصطلاح کلمه جادویی نام دارد به حالت اولیه خود باز می گردد. الگویتم های مختلف و گوناگونی برای این کار وجود دارد که بر اساس روش های مختلفی کار می کنند.
کد مورد نظری که GNU توانسته بود به آن دست یابد DEFLATE نام گرفت که ترکیبی از کدهای هافمن و LLZVV بود. این کد با کمی تغییرات به عنوان Gzip به کار گرفته شد. پس در پاسخ به این که منشا اصلی Gzip چیست باید بنیاد گنو را معرفی کنیم. اما چگونگی ورود به وب Gzip چیست موردی است که باید بررسی شود.
Gzip چگونه به وب وارد شد
همانطور که در بخش قبل و در توضیحاتی که در مورد سوال Gzip چیست ارائه شد گفتیم، این روش فشرده سازی یک برنامه برای گنو لینوکس بود. پس چگونه می توان روی سایت از آن استفاده کرد!؟
قابلیت های بالای این فشرده سازی باعث شد تا این کدینگ رشد سریعی داشته باشد و بتواند به صورت عملیاتی روی پلتفرم OpenBSD اجرا شود و با فرمت Gzip به عنوان یک فایل قابل بازیابی عرضه شود. بعد از این سیستم عامل نوبت به توزیع های دیگری مانند FreeBSD، DragonFly BSD و Net BSD بود که این فرمت را به فرمت های خود اضافه کنند.
از طریق Net BSD که یکی از توزیع های خط فرمان و بدون گرافیک به شمار می رفت این برنامه و فرمت توانست به گنو وارد شود و به عنوان یک برنامه موفق کار خود را آغاز کند. بعد از کمی رشد Gzip توانست وارد دنیای وب شده و توسط مرورگر ها ترجمه شود. شما تاکنون قطعا با این فرمت برخورد داشته اید ولی متوجه آن نشده اید. یکی از مواردی که Gzip به صورت مخفی در آن وجود دارد تصاویر PNG هستند که به صورت داخلی از این تکنولوژی استفاده می کنند. همینطور برنامه هایی مانند 7ZIP این امکان را دارند که این فرمت را بخوانند و آن را ترجمه کنند. در بخش بعدی خواهیم دید که مکانیزم کارکرد Gzip چیست
مکانیزم کار Gzip چیست
در بخش های قبلی یک اشاره جزئی به اینکه مکانیزم کاری Gzip چیست و از چه روشی ایجاد شده است داشتیم اما به طور کلی باید گفت که راه دور و درازی پشت Gzip بوده است و این برنامه راه های زیادی را طی کرده است تا به استفاده ای که امروز دارد رسیده است. از شروع یک برنامه تا استاندارد شدن آن و اینکه بتواند توسط هر مرورگری خوانده شود و فهمیده شود، راهی بسیار دراز در پیش است که Gzip با توجه به قابلیت هایی که داشت این راه را پشت سر گذاشت. اما این مکانیزم کاری Gzip چیست که توانسته کار را به اینجا رساند.
اگر بخواهیم به صورت کلی بگوییم Gzip چیست باید بگوییم که یه گام برای این کار وجود خواهد داشت:
اول: درخواست به صفحه ای از سایت مورد نظر به وب سرور ارسال می شود و وب سرور بررسی می کند که آیا Gzip روی سایت فعال است یا خیر.
دوم: وب سرور با استفاده از تکنیک های کدینگ Gzip صفحه مورد نظر را فشرده کرده و صفحه کم حجم را ارسال می کند.
سوم: مرورگر صفحه را به صورت Gzip دریافت کرده و متوجه کدینگ خواهد شد، و محتوا را از حالت Gzip خارج می کند و به نمایش در می آورد.
در هر کدام از این مراحل یک مورد مبهم وجود دارد که لازم است به بررسی آن بپردازیم. نکته اول این است که راه تشخیص فعال بودن Gzip چیست و سرور چگونه باید بفهمد که آیا این قابلیت فعال است یا نه. برای این کار لازم است که شما تنظیمات فایل htaccess را تغییر دهید. در این صورت وب سرور شما خواهد فهمید که باید سایت را با استفاده از Gzip فشرده سازی کرده و محتوای آن را ارسال کند.
در مرحله فشرده سازی با Gzip، محتوای صفحه به صورت کامل فشرده سازی می شود. عموما یک صفحه وب از کدهای HTML، CSS و اسکریپت های مختلف و همینطور تصاویر و متن خام ساخته شده است. اولین کاری که Gzip انجام می دهد این است که متن شما را به صورت یک متن بدون موارد زائد در می آورد و یک چینش خطی به متن می دهد. به این صورت که تمامی کامنت ها حذف شده، دسته بندی های توابع به هم ریخته و کد به ساده ترین شکل ممکن در خواهد آمد. بعد از این کار این کد توسط الگوریتم های مختلف فشرده سازی شده و در اینجاست که کاهش حجم چهل تا هفتاد درصدی ما اتفاق می افتد.
مورد بعدی مربوط به مرورگر است. مرورگر ما از کجا خواهد فهمید که صفحه مورد نظر با Gzip فشرده سازی شده است؟ در واقع تمامی مرورگر ها در آپدیت های جدید خود از این فرمت پشتیبانی می کنند و وقتی فایلی که درخواست داده بودند با فرمت Gzip به آنها برسد با استفاده از اطلاعات موجود در هدر Gzip که در بخش های قبلی به آن اشاره کردیم، آن را از حالت فشرده خارج خواهند کرد. به طور کلی می توان فشرده سازی با Gzip را یک کار سیستمی دانست که وب سرور و مرورگر خود را درگیر آن می کنند و زیاد در طراحی سایت و همینطور استفاده از آن تاثیری نخواهد گذاشت و تاثیر آن صرفا مربوط به فعال کردن Gzip و تجربه کاربری خوبی است که کاربر بدست خواهد آورد.
اکنون نوبت به آن رسیده است که ببینیم روش های فعال کردن 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 ایراداتی وجود دارد و ممکن است این کدها برای این وب سرور کار نکند. در اینصورت کدهای زیر می تواند مشکل شما را برطرف کند:
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
در صورتی که از سیستم مدیریت محتوای وردپرس برای راه اندازی و مدیریت سایت خود استفاده می کنید باید در نظر داشته باشید که می توانید با استفاده از افزونه ها نیز این کار را انجام دهید. افزونه های متعدد زیادی وجود دارند که به شما کمک می کنند که بدون رفتن به سراغ کدهای گفته شده و دستکاری مستقیم فایل htaccess قابلیت Gzip را برای خود فعال کرده و از آن استفاده کنید.
مزایای استفاده از Gzip
تا اینجای مقاله کم و بیش دیده است که مزایای Gzip چیست و این سیستم فشرده سازی چگونه باعث بهبود اوضاع سایت ما می شود. اما یک بار به صورت خلاصه به مرور آنها خواهیم پرداخت و آنها را با هم بررسی می کنیم.
افزایش سرعت
اگر بخواهیم بگوییم مهمترین انتظاری که از Gzip داریم چیست می توانیم به صورت صد در صد بگوییم که افزایش سرعت سایت هدف اصلی از این کار است. بدیهی است وقتی یک فشرده سازی انجام بگیرد و این فشرده سازی توسط وب سرور و درست در زمان خروج پکت های اطلاعاتی باشد، پس داده کمتری باید برای نمایش به مرورگر کاربر برسد و سرعت اینگونه بالاتر خواهد رفت.
افزایش بازدهی سایت و بهبود تجربه کاربری
این دو مورد را می توان از مزایای افزایش سرعت دانست که Gzip در آن نقش مهمی دارد. اما مسئله دیگری که باید در نظر داشت این است که با این فشرده سازی بر خلاف سایر تکنیک های بالا بردن سرعت که ممکن است به کیفیت صدمه بزنند و یا بعضی از اسکریپت ها و کدها را کش کنند، هیچ خدشه ای به کیفیت تصاویر و یا کدها و اسکریپت های شما وارد نمی شود و اجرای سایت شما دقیقا همانطور خواهد بود که طراحی را انجام داده اید.
مصرف بهینه پهنای باند
موضوع دیگری که خیلی از موارد ممکن است دیده نشود استفاده کمتر از پهنای باند است. در خیلی از سرویس های هاستینگ پهنای باند یکی از معیارهایی است که هزینه بر اساس آن تعیین می شود و می تواند برای سایت یکی از موارد قابل تامل باشد، خصوصا اگر بازدید سایت بالا باشد و پهنای باند زیادی اشغال شود. اگر بخواهیم بگوییم که در این مورد نقش Gzip چیست باید بگوییم که Gzip تضمین می کند که ترافیک خیلی کمتری از سایت شما خارج شده و مصرف پهنای باند شما را کاهش دهد.
مکانیزم عمل این المان، فشرده سازی قبل از ارسال است پس یک بازدید با Gzip، حداقل مقدار 40 درصد کمتر از همان بازدید بدون Gzip از پهنای باند شما کم می کند.
رایگان بودن
خیلی از افزونه ها و قابلیت هایی که کار بهینه سازی افزونه ها را برای شما انجام خواهند داد به صورت غیر رایگان بوده و هزینه نسبتا بالایی را دارند. چون هم پیچیده هستند و معمولا هم قابلیت های متعددی دارند که ممکن است بعضی از آنها اصلا به کار شما نیاید. اما Gzip به صورت کاملا رایگان در اختیار شما خواهد بود و می توانید از آن استفاده کنید.
عدم ایجاد تداخل
موردی که در خیلی از افزونه های افزایش سرعت دیده می شود این است که تداخل هایی بین بهینه سازی های آنها و اسکریپت های سایت شما ایجاد می شود. خلاصه سازی کدها و کش کردن بعضی از موارد می تواند ایراداتی را در کارکرد سایت شما ایجاد کند. رفع این مشکلات می تواند چند روزی وقت شما را بگیرد و تازه نمی توانید مطمئن باشید که تمام آنها را پیدا کرده اید و ایرادی وجود ندارد.
یکی از مزایای Gzip این است که دیگر از این موارد خبری نیست و لازم نیست که شما خود را درگیر این کار کنید. این فشرده سازی ساده به صورت استاندارد بین وب سرور و مرورگر شما کار خود را انجام خواهد داد و به هیچ ماژولی هم آسیبی نمی رساند.
امکان کار با سایر ابزارهای افزایش سرعت
وقتی از Gzip استفاده می کنید به این معنی نیست که امکان استفاده از سایر تکنیک ها را هم خواهید داشت. شما قادر خواهید بود که به صورت همزمان هم از این تکنیک و هم از تکنیک هایی مانند خلاصه کردن کدهای CSS و یا بهینه سازی های دیگر استفاده کنید و مشکلی پیش نیاید.
به طور کلی در پاسخ به اینکه مزایای Gzip چیست می توان تمامی امکاناتی که از یک تکنیک افزایش سرعت انتظار می رود را معرفی کرد و مطمئن بود که این کار ها هم درست انجام خواهد شد و مشکلی وجود نخواهد داشت.
نتیجه گیری
در پاسخ سوال Gzip چیست باید بگوییم، یکی از روش های فشرده سازی است که می تواند برای شما امکاناتی ایده آل مانند بالا بردن سرعت سایت، کم شدن استفاده از پهنای باند و بهبود اوضاع سئو سایت را داشته باشد و راه اندازی آن هم کار ساده ای است و بدون نیاز به پرداخت هزینه می توانید از آن استفاده کنید. با توجه به پیاده سازی ساده و همینطور مزایای بالا Gzip یک گزینه ایده آل برای سایت شما خواهد بود.