مقدمه
در این آموزش میخواهیم در خصوص Gzip و فشرده سازی صحبت کنیم.عملیات فشردع سازی به این معناست که شما میتوانید برای کاهش اندازه فایل های سایتتون و در نهایت بهینه سازی وضعیت انتقال محتوای سایت خود به بهترین نتیجه به لحاظ سرعت سایت و حجم کمتر دست یابید و این میتونه در نهایت منجر به ایجاد یک سایتی بشه که همه ی موارد فنی رو رعایت کرده و نتیجه دلخواهتون رو به نمایش بگذار.
Gzip چیست؟
Gzip یک فرمت فایل است که برای فشرده سازی محتوای HTTP قبل از تحویل به مشتری طراحی شده است. از الگوریتم Gzipبرای کاهش اندازه فایل و بهینه سازی انتقال استفاده می شود.
با استفاده از فشردهسازی Gzip، میتوانید به طور موثر اندازه فایلها را کاهش دهید و کارایی تحویل محتوا را از طریق HTTP افزایش دهید.
فشرده سازی چیست؟
فشرده سازی فرآیند کاهش اندازه فایل است و با استفاده از یک الگوریتم فشرده سازی انجام می شود. یک روش فشردهسازی میتواند اتلافپذیر باشد، به این معنی که برخی از اطلاعات در فرآیند فشردهسازی از بین میرود، یا بدون اتلاف، به این معنی که تمام اطلاعات فایل اصلی در فایل فشرده نگهداری میشود.در هسته خود وب سایت مجموعه ای از فایل های مرتبط ذخیره شده در یک وب سرور وجود دارد. هنگامی که یک URL را در مرورگر خود وارد می کنید، مرورگر شما یک درخواست (معمولاً یک درخواست HTTP GET) به سرور وب که محتوای مورد نظر شما را میزبانی می کند ارسال می کند. سرور درخواست شما را پردازش می کند، فایل های مناسب را از پایگاه داده خود از جمله HTML و CSS، جاوا اسکریپت و فایل های رسانه ای مرتبط بازیابی می کند و سپس فایل ها را به عنوان پاسخ HTTP به مرورگر شما می فرستد.در نهایت،مرورگر شما فایل ها را به شکلی که به عنوان یک صفحه وب می بینید،ارائه می کند.
فشرده سازی HTTP
فشرده سازی HTTP قابلیتی است که می تواند در سرورهای وب و کلاینت های وب برای بهبود سرعت انتقال و استفاده از پهنای باند تعبیه شود. هنگامی که این فرآیند اعمال می شود، اندازه داده ها را قبل از ارسال از سرور به مشتری کاهش می دهد و در نتیجه زمان صرف شده برای انتقال داده ها در اینترنت را کاهش می دهد.فشرده سازی HTTP با استفاده از الگوریتم های استاندارد برای فشرده سازی داده ها در سمت سرور کار می کند. هنگامی که مشتری داده های فشرده شده را دریافت کرد، سپس از حالت فشرده خارج می شود تا مشتری بتواند از آن استفاده کند.این رویکرد به ویژه برای بهبود عملکرد وب سایت ها هاست ارزان و برنامه های کاربردی وب، به ویژه هنگامی که با مقادیر زیاد داده یا اتصالات شبکه کند سروکار دارید،مفید است.
دو نوع رایج فشرده سازی HTTP عبارتند از Gzip و Deflate، اما انواع دیگری نیز وجود دارند. این روشهای فشردهسازی بهویژه بر روی فایلهای متنی، مانند فایلهای HTML، CSS یا جاوا اسکریپت مؤثر هستند، جایی که میتوانند اندازه دادههای ارسالی را 70 تا 90 درصد کاهش دهند.
انواع فایلهایی که معمولاً با gzip مرتبط هستند عبارتند از:
-
.gz
این پسوند فایل نشان می دهد که الگوریتم gzip فایل را فشرده کرده است.
-
فایل .tar،tarball
فرمت tar برای بایگانی چندین فایل استفاده می شود. از Gzip می توان برای فشرده سازی فایل های .tar استفاده کرد.
-
فایل .tgz,.tar.gz,.gz
این پسوندها نشان دهنده یک فایل 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
کد زیر را به فایل 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