gzip چیست
ابزار فشرده سازی داده gzip توسط Jean-Loup Gailly و Mark Adler که وظیفه توسعه جایگزینی قدرتمند برای برنامه نوشته شده توسط Unix، فشرده سازی را بر عهده داشتند، توسعه داده شد. عملکردها و رفتارهای آن در استاندارد POSIX تعریف شده است که فشرده سازی فایل را با استفاده از الگوریتم تطبیقی Lempel-Ziv امکان پذیر می کند. با این حال، این الگوریتم و همچنین گسترش آن توسط تری ولش، برای سال ها (تا سال 2013) توسط پتنت های ایالات متحده محافظت می شد که یکی از دلایل کار بر روی جایگزینی مناسب بود. علاوه بر این، تمرکز بر روی کارآمدتر کردن فشردهسازی gzip نسبت به ابزار یونیکس بود – با موفقیت.
gzip چیست و چگونه کار می کند؟
Gzip مخفف ‘GNU zip’ است و بر اساس الگوریتم deflate قابل استفاده آزادانه است، که نوعی تغییر از روش فشرده سازی داده LZ77 (Lemprl-Ziv 77) و همچنین کدگذاری هافمن است. با استفاده از این تکنیک ها، فایل های gzip رشته های داده تکراری را اسکن می کنند. اگر برنامه با این توالی های تکرار شونده روبرو شود، پیوندی به رشته ای که برای اولین بار ظاهر می شود را جایگزین آنها می کند. طول این دنباله ها معمولاً به 32000 بایت محدود می شود. اگر رشته کاراکتری در 32000 بایت قبلی ظاهر نشود، (بدون فشرده سازی) در فایل gzip که پایان .gz را دریافت می کند، ذخیره می شود. این رویه به فایلهای جداگانه محدود میشود، به همین دلیل است که برنامه pack، tar، برای ایجاد به اصطلاح آرشیو tarball با پایانهای: tar، .gz، و .tgz مورد نیاز است.
برای باز کردن بسته های فشرده شده، می توانید از برنامه gunzip یا دستور gzip مربوطه استفاده کنید. ویژگی ها و ساختار فرمت gzip که فایل ها هنگام فشرده سازی به آن تبدیل می شوند، به عنوان مشخصات RFC 1951 و 1952 توضیح داده شده است. این شامل، برای مثال، یک سرصفحه 10 بایتی با شماره نسخه و مهر زمانی، هدرهای اضافی اختیاری، که نام فایل اصلی فایل منبع را ذخیره میکند، و یک پاورقی 8 بایتی، که شامل یک جمعبندی بررسی برای تشخیص خطاها است، از جمله موارد دیگر است.
gzip چیست ؟ چه زمانی از ابزار فشرده سازی استفاده می شود؟
Gzip در ابتدا برای پلتفرم UNIXoid GNU توسعه داده شد، اما اکنون تا زمانی که مجوز GPL انتخاب شده برای پروژه در نظر گرفته شود، تقریباً در تمام پلتفرم ها استفاده می شود. به عنوان مثال، در سیستمهای لینوکس، ابزار فشردهسازی معمولاً بهطور خودکار نصب میشود، یا به طور متناوب در مدیریت بسته موجود است و آماده نصب است. علاوه بر نسخه های مختلف سیستم عامل های قدیمی، نسخه هایی برای macOS و Windows نیز در وب سایت رسمی وجود دارد. علاوه بر این، این واقعیت است که برنامههای وب سرور، مانند Apache، سالها بر فشردهسازی gzip مسلط شدهاند – حتی اگر این عملکرد همیشه مورد استفاده قرار نگیرد – و همچنین توانایی مرورگرهای مدرن برای تفسیر فایلهای فشرده و باز کردن آنها در طول رندر صفحه وب
در توسعه وب، gzip به طور کامل نقاط قوت خود را نشان می دهد: هنگامی که فرآیند فعال می شود، وب سرور به طور خودکار فشرده سازی عناصر وب سایت را که در فضای وب آپلود شده اند و همچنین مواردی که به صورت پویا ایجاد شده اند را آغاز می کند. به این ترتیب می توان زمان بارگذاری وب سایت را به میزان قابل توجهی برای بازدیدکنندگان کاهش داد. از آنجایی که کاربران فقط باید بسته های داده فشرده شده را بارگیری کنند، صفحات نیز بسیار سریعتر بارگیری می شوند. مرورگر بدون نیاز به پهنای باند اضافی، فشرده سازی را در پس زمینه انجام می دهد. به ویژه کاربران دستگاه های تلفن همراه از این افزایش عملکرد بهره مند می شوند که به طور غیرمستقیم تأثیر مثبتی بر رتبه بندی موتورهای جستجو دارد.
gzip چیست ؟ : نمای کلی دستورات و نحو
حتی اگر رابط های گرافیکی برای پلتفرم های مختلف وجود داشته باشد، عملیات gzip از طریق ترمینال یا درخواست ورودی، البته به راحتی امکان پذیر است. این یک چالش بزرگ برای مبتدیان نخواهد بود، زیرا gzip به عنوان یک ابزار خط فرمان کلاسیک برای این منظور بهینه شده است. نحو کلی به شکل زیر است:
gzip [OPTION]…[FILE]…
تعیین گزینه ها به هیچ وجه اجباری نیست. اگر فیلد خالی بماند، gzip به سادگی به تنظیمات پیش فرض برمی گردد. به عنوان مثال، این دستور ساده کافی است:
gzip example.txt
برای ایجاد یک نسخه فشرده از فایل متنی example.txt. با این حال، برای باز کردن فایلها در آینده، یا ارائه دستورالعملهای خاص در مورد نسبت فشردهسازی، محل بایگانی یا مدیریت فایل اصلی، دستورات به مشخصات مناسب نیاز دارند.
جدول زیر نمای کلی از مهمترین دستورات gzip را ارائه می دهد:
گزینه | شرح |
---|---|
-1 … -9 | نسبت تراکم (1-9) را تعریف میکند، که 1 ضعیفترین و سریعترین فشردهسازی است، و 9 بهترین، اما کندترین فشردهسازی است. مقدار پیش فرض 5 است |
-r | دایرکتوری (شامل همه زیر شاخه ها) را به صورت بازگشتی جستجو می کند و همه فایل های موجود را فشرده یا از حالت فشرده خارج می کند. |
-f | فشردهسازی gzip را مجبور میکند و در صورت لزوم، فایلهای موجود را با همان نام فایل بازنویسی میکند |
-d | فایل انتخابی را در فهرست فعلی باز می کند |
-k | از حذف فایل اصلی جلوگیری می کند |
-l | اطلاعاتی مانند نسبت فشرده سازی یک فایل بسته بندی شده را نشان می دهد |
-c | فایل فشرده را در خروجی استاندارد صادر می کند. معمولا صفحه نمایش به خط فرمان متصل است |
-q | تمام اعلان های gzip را غیرفعال می کند |
-t | یکپارچگی فایل بسته بندی شده را آزمایش می کند |
-h | تمام گزینه های موجود را فهرست می کند |
gzip چیست ؟ نحوه استفاده از فشرده سازی gzip برای پروژه وب آپاچی
وب سرورها معمولاً فرآیند فشرده سازی عملی را در قالب یک ماژول ارائه می دهند که باید فعال شود. امروزه بسیاری از ارائه دهندگان میزبانی وب این ویژگی را به اشتراک می گذارند، اما در گذشته اینطور نبود. دلیل آن احتمالاً به این دلیل بود که فرآیند فشرده سازی به قدرت پردازنده اضافی نیاز داشت. اگر مطمئن نیستید که gzip توسط هاست شما مجاز است، می توانید مستقیماً با میزبان خود تماس بگیرید یا به طور متناوب یک درخواست دستی انجام دهید. برای مثال، با یک وب سرور آپاچی، تنظیمات ماژول را با استفاده از یک خروجی ساده phpinfo() بررسی کنید. ورودی HTTP_ACCEPT_ENCODING به شما می گوید که کدام روش فشرده سازی انتخاب شده است.
اگر gzip در دسترس باشد، چندین گزینه برای استفاده از دستیار فشرده سازی برای هر هدفی دارید.
gzip چیست ؟ فعال سازی فشرده سازی Gzip در فایل htaccess
میتوانید از یک فایل htaccess. برای انجام تنظیمات خاص دایرکتوری (این تنظیمات برای دایرکتوری فعلی و همه زیر شاخهها اعمال میشود) استفاده کنید و وب سرور خود را در زمان واقعی پیکربندی کنید. این امکان را فراهم می کند تا فایل پیکربندی، که معمولاً در دایرکتوری ریشه یافت می شود، به طور خودکار برای هر درخواستی که به سرور می رسد خوانده شود. با این حال، در برخی از ارائه دهندگان میزبانی وب، فایل htaccess. در یک پوشه دیگر ذخیره می شود، مخفی می شود یا حتی از دسترسی مسدود می شود. در این صورت تنها گزینه ای که دارید تماس با هاست و درخواست دسترسی است. اگر میتوانید پیکربندیها را انجام دهید، فشردهسازی gzip (mod_gzip) یا الگوریتم deflate (mod_deflate) را با افزودن کد زیر به فایل 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>
<IfModule mod_deflate.c>
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
</IfModule>
gzip چیست ؟ فشرده سازی gzip را از طریق PHP فعال کنید
فعال کردن فرآیند فشرده سازی با استفاده از یک دستور ساده PHP امکان پذیر است. اما یک نکته وجود دارد: کد باید به صورت جداگانه برای هر سند PHP وارد شود. بنابراین، فقط در صورتی باید از این گزینه استفاده کنید که حقوق لازم برای ویرایش فایل htaccess. را ندارید. خط کدی که باید در ابتدای هر خط قرار دهید به شرح زیر است:
<?php
ob_start("ob_gzhandler");
?>
gzip چیست ؟ پیاده سازی gzip از طریق پلاگین CMS
علاوه بر این دو راهحل دستی، یک نوع نیز وجود دارد که برای راهاندازی آن فقط به حداقل تلاش نیاز دارد: فعال کردن فشردهسازی gzip با استفاده از یک افزونه برای سیستم مدیریت محتوایی که استفاده میکنید. چنین افزونههای مفیدی که میتوانید در عرض چند دقیقه آنها را جاسازی کنید و با نیازهای خود تطبیق دهید، در درجه اول برای CMSهایی مانند وردپرس هستند که مبتنی بر PHP هستند. لیست زیر شامل سه مورد از محبوب ترین افزونه ها برای نرم افزار وبلاگ است:
- W3 Total Cache: افزونه وردپرس W3 TotalCache نوید بهبود عملکرد وب سایت را ده برابر می کند. علاوه بر مکانیسمهای مختلف ذخیرهسازی و پشتیبانی ویژه موبایل، مجموعه SEO و قابلیت استفاده گزینههایی برای فعالسازی فشردهسازی gzip نیز دارد.
- فشرده سازی GZIP را بررسی و فعال کنید: این افزونه که برای CMS WordPress نیز توسعه یافته است، به شما امکان می دهد تا بررسی کنید که فشرده سازی gzip برای پروژه شما فعال است یا خیر. برای این منظور، افزونه به سرویس آنلاین checkgzipcompression.com متکی است. اگر فشرده سازی خاموش باشد، این افزونه به شما در راه اندازی کمک می کند.
- تقویت کننده امتیاز عملکرد WP: بیش از 150000 بارگیری و 30000 نصب فعال را می توان در افزونه WP Performance Score Booster یافت. با استفاده از این افزونه، می توانید به راحتی gzip را فعال کنید و به طور موثر محتویات پروژه وب خود را فشرده کنید، مانند متن، HTML، جاوا اسکریپت، CSS، XML و موارد دیگر.
برای سیستم های دیگر مانند جوملا، شما حتی نیازی به افزونه ندارید. در اینجا، توابع برای فعال کردن تکنیک های فشرده سازی قبلاً به عنوان استاندارد گنجانده شده است.
چگونه gzip را در وب سرور NGINX خود فعال کنید
هنگامی که محتوای سایت خود را با استفاده از وب سرور NGINX تحویل می دهید، این امکان را دارید که از فرآیند gzip نیز برای بهبود زمان بارگذاری پروژه خود استفاده کنید. برای این کار فقط باید ماژول ngx_http_gzip_module را پیکربندی کنید. به طور پیش فرض، دستورالعمل “gzip” که برای فعال یا غیرفعال کردن سرویس فشرده سازی استفاده می شود، خاموش است. برای تغییر این تنظیمات، nginx.conf را باز کنید و دستور ‘gzip’ را جستجو کنید. سپس فقط “gzip off” را به “gzip on” تغییر دهید. جدول زیر معنی و امکانات دستورالعمل های دیگر برای پیکربندی فشرده سازی gzip NGINX را نشان می دهد:
Directive | Syntax | تنظیمات استاندارد | شرح |
---|---|---|---|
gzip_buffers | gzip_buffers – number and size; | gzip_buffers 32 4k, 16 8k; | تعداد و اندازه بافر را برای فرآیند فشرده سازی تعریف می کند |
gzip_comp_level | gzip_comp_level – compression ratio; | gzip_comp_level 1; | نسبت فشرده سازی را مشخص می کند. مقادیر ممکن: 1-9 |
gzip_min_length | gzip_min_length – minimum length; | gzip_min_length 20; | حداقل طول فایل بسته ها را بر حسب بایت مشخص می کند |
gzip_http_version | gzip_http_version – version number; | gzip_http_version 1.1; | نسخه HTTP را مشخص می کند که از چه زمانی به یک درخواست باید با یک پاسخ فشرده پاسخ داده شود |
gzip_types | gzip_types – content type; | gzip_types text/html; | تنظیم میکند که فشردهسازی برای کدام نوع محتوا اعمال شود (همچنین ممکن است: CSS، JSON، XML،…) |
چگونه می توانید فشرده سازی را آزمایش کنید
اگر فشردهسازی gzip را برای حضور خود در وب پیکربندی کردهاید، میتوانید از ابزارهای آنلاین مختلف برای پیکربندی فرآیند به دلخواه خود استفاده کنید، به طوری که سرور وب شما در صورت درخواست، محتوای فشردهشده را تحویل میدهد. مهمتر از همه، ما برنامه Google PageSpeed Insights را توصیه می کنیم. پس از وارد کردن یکی از صفحات وب سایت خود در قسمت جستجو، ابزار به طور خودکار محتوا را تجزیه و تحلیل می کند و سپس شما را از نقاط قوت و ضعف عملکرد وب سایت خود مطلع می کند. شما اطلاعاتی در مورد فعال بودن فشرده سازی gzip دریافت خواهید کرد و همچنین می توانید با استفاده از تست فشرده سازی HTTP در WhatsMyIP.org یک آزمایش ساده gzip را اجرا کنید.
gzip چیست ؟
ترجمه شده توسط سایت دریای شرق از سایت
کپی بدون ذکر نام و لینک سایت دریای شرق ممنوع است !