Gzip چیست و چگونه کار می کند
در این مقاله در مورد فشرده سازی Gzip و نحوه عملکرد به شما کاربران توضیح داده میشود ، اگر شما تمایل دارید بدانید gzip چیست و چگونه کار می کند ، ادامه این آموزش را مطالعه نمایید.
به عنوان صاحب یک وب سایت احتمالاً درک خواهید کرد که سرعت وب سایت و مدت زمان بارگذاری صفحه های وب سایت از اهمیت بسیار زیادی برخوردار است بنابراین بهتر است بدانید gzip چیست.
حتما اطلاع دارید که در دسترس قرار گرفتن وب سایت با سرعت بالا برای کاربران می تواند در bounce rate ، تجربه کاربر (User Experience) ، سئو و تعیین سطح در موتور های جستجو ( از آنجا که سرعت یک عامل رتبه بندی است ) و … تاثیر داشته باشد.
یکی از موثر ترین روش ها برای افزایش سرعت وب سایت فعال سازی Gzip در وردپرس و یا سرور است.
Gzip چیست ؟
اگر شما به طور منظم با کامپیوتر کار می کنید ، احتمالا در حال حاضر در مورد فشرده سازی ( آرشیو های zip ) اطلاع دارید ، این یک راه عالی برای کاهش حجم فایل ها به منظور انتقال آسان فایل ها می باشد.
همین کار برای فایل هایی که وب سایت وردپرس را تشکیل می دهند و دلایل خوبی برای اینکار وجود دارد ، امکان پذیر است.
فایل های کوچکتر به بازدیدکنندگان شما اجازه می دهد تا فایل های سایت را سریع تر دانلود کنند و در نتیجه وب سایت شما را سریع تر مشاهده کنند.
اما gzip چیست ؟ GZip همانند الگوریتم های zip و sit، الگوریتمی جهت فشرده سازی است که امروزه از موثرترین عوامل بهینه سازی سرعت بارگذاری صفحات وب به شمار می رود و استفاده از آن بسیار متداول است. هنگامی که کاربری به سایت شما وارد می شود در ابتدا یک تماس با سرور شما برقرار نموده و فایل هایی را از آن درخواست می کند. هر چقدر فایل ها بزرگتر باشد، زمان بیشتری برای ظاهر شدن صفحات مورد نیاز است.
استفاده از الگوریتم فشرده سازی gzip این امکان را برای سایت شما به وجود می آورد که فایل های css و صفحات وب قبل از ارسال به مرورگر، به صورت فشرده درآمده سپس ارسال می گردد. از آنجایی که استفاده از این الگوریتم باعث می شود فایل ها حجم کمتری پیدا کند، سرعت انتقال اطلاعات افزایش پیدا کرده و در نتیجه صفحات وب زودتر بارگذاری می شوند.
فشرده سازی Gzip چگونه کار می کند؟
در سطح بسیار ابتدایی بسیاری از سایت های مدرن از ترکیب کد های HTML و CSS و جاوا اسکریپت تشکیل شده اند. وقتی که بازدیدکنندگان سایت شما را درخواست می کنند ، مرورگر فایل ها را دانلود و پس از رندر به کاربر نمایش می دهد. تاکنون این خیلی خوب است.
با این حال ، از آنجایی که کد ها توسط انسان ها به کار گرفته می شوند ، برای اینکه چشم انسان ها آنها را به راحتی درک کنند ، مرتب می شوند. این یکی از دلایلی است که چرا ما باید وردپرس استانداردی داشته باشیم.
با این حال ماشین ها مانند مرورگر ، نیازی به کد های زیبا و یا خوانا ندارند ، تا زمانی که می توانید باید آنها را تجزیه و همه آنها در یک بلوک یا خط قرار دهید ، که در آموزش های بعدی در مورد minify کردن و combine فایل css و html و جاوا اسکریپت توضیح می دهیم.
به منظور درک اینکه که فشرده سازی Gzip چگونه کار می کند ، ما باید درک کنیم که تمام کد ها تا حدودی تکراری هستند. در برنامه نویسی و طراحی وب تعداد زیادی الگو و عناصر تکرار می شود.
برای اینکه این موضوع برای شما روشن شود ، اجازه دهید وانمود کنیم یک قطعه کد شبیه زیر است :
EEE GGGG HHHHH
با سیستم GZIP به راحتی کد ها بالا به کد ساده زیر تبدیل می شود :
۳E 4G 5H
با این حال آنچه قابل توجه است ، این است که در یک گام کوچک ۱۲ کاراکتر به ۶ کاراکتر یعنی ۵۰% کمتر کاهش داده شده است ، اما فعالیت gzip در پشت پرده بسیار پیچیده تر است. در سطح بسیار ابتدایی ، gzip یک کتابخانه برای فشرده سازی و استخراج داده است ، به خصوص برای محتوا مبتنی بر متن کاربرد دارد.
از آنجایی که فایل های css و html شامل کدهای تکراری زیادی بوده و فضای زیادی را اشغال می کنند، استفاده از gzip به دلیل فشرده سازی کدهای مشترک، باعث کاهش اندازه صفحات تا بالای ۷۰% می گردد.
هنگامی که مرورگر به وب سرور مراجعه می کند، در ابتدا مشاهده می کند که آیا gzip در سرور فعال شده یا خیر، سپس درخواست خود را ارسال می نماید؛ در صورتیکه gzip فعال شده باشد، فایل فشرده شده ای را دریافت می کند که حجم بسیار کمی دارد، اما در صورتیکه این حالت وجود نداشته باشد، مرورگر مجبور است که تمام صفحات را بصورت یکجا به همان شکل واقعی دریافت نماید که در این حالت، فایل مربوطه بسیار حجیم تر خواهد بود.
تمام مرورگر های مدرن نه تنها از Gzip پشتیبانی می کنند ، بلکه به طور خودکار درخواست می دهند ، این یک روش برای سرعت بخشیدن به سایت های شما است.
gzip و اهمیت آن
اهمیت استفاده از gzip زمانی نمایان می شود که با استفاده از این قابلیت، می توانیم فایل ها و کدهای صفحات خود را فشرده کرده و زمان انتقال آنها را کاهش دهیم و در نتیجه شاهد کاهش زمان بارگذاری صفحات سایتمان شویم.
نصب gzip بر روی سرور
تا اینجا متوجه شدید gzip چیست اما برای استفاده از gzip و تنظیم فشرده سازی روش های متفاوتی وجود دارد و البته به سرور شما نیز بستگی دارد. برای تنظیم این الگوریتم بر روی سرورهای IIS می توانید از دستورالعملی که در سایت مایکروسافت قرار دارد استفاده نمایید.
1 |
http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx |
اما در صورتی که از سروری استفاده می کنید که از وب سرور اصلی آن Apache است و یا از آپاچی به عنوان Reverse Proxy استفاده می کند می توانید از کد زیر استفاده نمایید. کافیست در پوشه های اصلی سرور خود، فایل .htaccess را پیدا نموده و سپس بعد از باز کردن آن، کد زیر را اضافه و سپس ذخیره نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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 |
یک مثال عملی
مثال زیر به شما نشان می دهد که Gzip چیست و چگونه کار می کند ؟ در ادامه این مقاله سرعت یکی از سایت ها را با استفاده از Gzip و بدون استفاده از آن تست کردیم و نتایج را توسط GTmetrix دریافت کردیم.
نتیجه زیر برای زمانی است که Gzip غیر فعال بوده است:
نتیجه زیر برای زمانی است که Gzip فعال شده است :
همان طور که مشاهده کردید Gzip قادر است تا حجم سایت را از ۵۸۹ کیلوبایت به ۴۶۹ کیلوبایت کاهش دهد و تقریبا ۱.۸ ثانیه سایت را سریع تر کرده است.