Site icon تلاش نت

نحوه فشرده سازی Gzip

 

مقدمه

در این آموزش میخواهیم در خصوص Gzip و فشرده سازی صحبت کنیم.عملیات فشردع سازی به این معناست که شما میتوانید برای کاهش اندازه فایل های سایتتون و در نهایت بهینه سازی وضعیت انتقال محتوای سایت خود به بهترین نتیجه به لحاظ سرعت سایت و حجم کمتر دست یابید و این میتونه در نهایت منجر به ایجاد یک سایتی بشه که همه ی موارد فنی رو رعایت کرده و نتیجه دلخواهتون رو به نمایش بگذار.

 

Gzip چیست؟

Gzip یک فرمت فایل است که برای فشرده سازی محتوای HTTP قبل از تحویل به مشتری طراحی شده است. از الگوریتم Gzipبرای کاهش اندازه فایل و بهینه سازی انتقال استفاده می شود.

با استفاده از فشرده‌سازی Gzip، می‌توانید به طور موثر اندازه فایل‌ها را کاهش دهید و کارایی تحویل محتوا را از طریق HTTP افزایش دهید.

 

فشرده سازی چیست؟

فشرده سازی فرآیند کاهش اندازه فایل است و با استفاده از یک الگوریتم فشرده سازی انجام می شود. یک روش فشرده‌سازی می‌تواند اتلاف‌پذیر باشد، به این معنی که برخی از اطلاعات در فرآیند فشرده‌سازی از بین می‌رود، یا بدون اتلاف، به این معنی که تمام اطلاعات فایل اصلی در فایل فشرده نگهداری می‌شود.در هسته خود وب سایت مجموعه ای از فایل های مرتبط ذخیره شده در یک وب سرور وجود دارد. هنگامی که یک URL را در مرورگر خود وارد می کنید، مرورگر شما یک درخواست (معمولاً یک درخواست HTTP GET) به سرور وب که محتوای مورد نظر شما را میزبانی می کند ارسال می کند. سرور درخواست شما را پردازش می کند، فایل های مناسب را از پایگاه داده خود از جمله HTML و CSS، جاوا اسکریپت و فایل های رسانه ای مرتبط بازیابی می کند و سپس فایل ها را به عنوان پاسخ HTTP به مرورگر شما می فرستد.در نهایت،مرورگر شما فایل ها را به شکلی که به عنوان یک صفحه وب می بینید،ارائه می کند.

 

فشرده سازی HTTP

فشرده سازی HTTP قابلیتی است که می تواند در سرورهای وب و کلاینت های وب برای بهبود سرعت انتقال و استفاده از پهنای باند تعبیه شود. هنگامی که این فرآیند اعمال می شود، اندازه داده ها را قبل از ارسال از سرور به مشتری کاهش می دهد و در نتیجه زمان صرف شده برای انتقال داده ها در اینترنت را کاهش می دهد.فشرده سازی HTTP با استفاده از الگوریتم های استاندارد برای فشرده سازی داده ها در سمت سرور کار می کند. هنگامی که مشتری داده های فشرده شده را دریافت کرد، سپس از حالت فشرده خارج می شود تا مشتری بتواند از آن استفاده کند.این رویکرد به ویژه برای بهبود عملکرد وب سایت ها هاست ارزان و برنامه های کاربردی وب، به ویژه هنگامی که با مقادیر زیاد داده یا اتصالات شبکه کند سروکار دارید،مفید است.

دو نوع رایج فشرده سازی HTTP عبارتند از Gzip و Deflate، اما انواع دیگری نیز وجود دارند. این روش‌های فشرده‌سازی به‌ویژه بر روی فایل‌های متنی، مانند فایل‌های HTML، CSS یا جاوا اسکریپت مؤثر هستند، جایی که می‌توانند اندازه داده‌های ارسالی را 70 تا 90 درصد کاهش دهند.

انواع فایل‌هایی که معمولاً با gzip مرتبط هستند عبارتند از:

این پسوند فایل نشان می دهد که الگوریتم gzip فایل را فشرده کرده است.

فرمت tar برای بایگانی چندین فایل استفاده می شود. از Gzip می توان برای فشرده سازی فایل های .tar استفاده کرد.

این پسوندها نشان دهنده یک فایل tar است که با استفاده از gzip فشرده شده است.

 

Gzip چگونه کار می کند؟

Gzip بر اساس یک الگوریتم فشرده سازی بدون تلفات است.از طریق این فرآیند، داده ها در شکل اصلی خود در طول فشرده سازی و پس از فشرده سازی بدون تغییر می شوند.

فشرده سازی gzip دو مرحله دارد:

توالی‌های مکرر بایت‌ها در طول فشرده‌سازی شناسایی می‌شوند و با دنباله‌ای کوتاه‌تر نشان داده می‌شوند.
به دنباله های کوتاه شده تعدادی بیت اختصاص داده می شود که با توجه به تعداد دفعات وقوع توالی تعیین می شود. اگر یک دنباله به طور مکرر ظاهر شود، بیت های کمتری اختصاص داده می شود. از طرف دیگر، اگر دنباله اغلب ظاهر نشود، بیت های بیشتری اختصاص داده می شود.
از طریق این فرآیند، فایل اصلی فشرده می شود.

 

نحوه فعال کردن فشرده سازی Gzip

از یک افزونه کش که از gzip پشتیبانی می کند استفاده کنید یا gzip را در سرور وب خود از طریق فایل htaccess. فعال کنید.

دستورات فشرده سازی gzip را در ماژول mod_deflate در انتهای فایل htaccess. اضافه کنید. به عنوان مثال:

<IfModule mod_deflate.c>
# 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
</IfModule>

کد زیر را به فایل nginx.conf اضافه کنید:

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_vary on;
gzip_types text/plain text/css text/javascript image/svg+xml image/x-icon application/javascript application/x-javascript;

چکیده مطلب

در نظر داشته باشید هدف همه این گفتگوهای فنی این است که با ارائه سریع ترین صفحات ممکن، بهترین تجربه کاربری ممکن را به بازدیدکنندگان سایت خود ارائه دهید. اگر در وهله اول با آنچه که در واقع سرعت صفحه را تعیین می کند آشنا نباشید، “افزایش سرعت سایت” ممکن است مانند یک جعبه سیاه به نظر برسد. با اجرای فشرده سازی بر روی وب سرور خود، بدون هزینه اضافی، محتوای موردنظر را به بازدیدکنندگان ارائه می دهید. شما تأثیرات بیشتری را جذب خواهید کرد، تعامل بیشتری را به همراه خواهید داشت و بازدیدکنندگان بیشتری را به مشتری تبدیل خواهید کرد. سرعت سایت تا حد زیادی بر موفقیت سایت آنلاین شما تأثیر می گذارد.

 

TalaSH GrouP

 

5/5 - (2 votes)