HTTP2 و تاثیر تکنیک فایل های کوچک بر سرعت لود سایت
مفهوم سرعت و نحوه بارگذاری منابع در وبسایتها با ظهور پروتکل HTTP/2 متحول شد. در گذشته، برای کاهش زمان رفت و برگشت (Round Trip Time) و به حداقل رساندن درخواستها (Requests) به سرور، تکنیکی به نام کامباین کردن (Combine) فایلهای CSS و JS رایج بود. این جلسه به این میپردازد که چرا در دوران HTTP/2 این تکنیک دیگر منسوخ شده و راهکار نوین برای افزایش سرعت لود منابع چیست.
این بخش به تشریح تفاوت بین مدل بارگذاری در HTTP/1 و HTTP/2 و ارائه راهکار عملی تفکیک و کوچکسازی فایلهای منابع میپردازد.
تحول بارگذاری با HTTP/2
در پروتکل قدیمی (HTTP/1)، مرورگر برای هر فایل (CSS، JS، فونت) باید یک درخواست مجزا به سرور میفرستاد و منتظر پاسخ میماند، که فرآیندی زمانبر بود. کامباین کردن فایلها (مثلاً ادغام صدها فایل JS کوچک در یک فایل JS بزرگ) این درخواستها را کاهش میداد. اما HTTP/2 امکان چندریسمانی همزمان (Concurrent Multiplexing) را فراهم کرد. این بدان معناست که مرورگر میتواند چندین درخواست (مثلاً برای تمام فایلهای CSS) را همزمان به سرور بفرستد و همه آنها را بهصورت موازی دریافت کند.
چرا کامباین کردن فایلها دیگر مفید نیست؟
در مدل HTTP/2، کامباین کردن فایلها نهتنها سودی ندارد، بلکه مخرب است. تشبیه این وضعیت به این صورت است که بهجای استفاده از چندین کارگر (کانکشنهای HTTP/2) برای حمل چندین جعبه کوچک (فایلهای تفکیک شده)، تمام جعبهها را در یک جعبه بزرگ ادغام کنید و تنها یک کارگر آن را حمل کند، در حالی که بقیه منتظر بمانند. در عمل، در HTTP/2، سرعت لود منابع (CSS، JS) به اندازه بزرگترین فایل موجود خواهد بود. با ادغام فایلها، شما یک فایل بسیار سنگین میسازید که زمان بارگذاری آن، سرعت کلی را کاهش میدهد.
راهکار نوین: تفکیک و کوچکسازی منابع
راهکار اصلی در دوران HTTP/2، دقیقاً برعکس کامباین کردن است: تفکیک منابع به فایلهای مستقل و کوچک. به جای داشتن یک فایل style.css با حجم ۸۰ کیلوبایت که شامل تمام استایلهاست، بهتر است آن را به فایلهایی کوچکتر تقسیم کنید (مثلاً دو فایل ۴۰ کیلوبایتی یا چند فایل با حجم کمتر از ۱۰ کیلوبایت).
- مزیت اصلی: با تفکیک فایلها، بزرگترین فایل شما کوچکتر میشود (مثلاً از ۸۰ کیلوبایت به ۴۰ کیلوبایت) و چون منابع به صورت موازی لود میشوند، زمان کلی بارگذاری به اندازه لود همان فایل ۴۰ کیلوبایتی کاهش مییابد.
- این اصل در مورد جاوا اسکریپتها نیز صدق میکند. باید اسکریپتها بر اساس وظیفه و محل استفاده تفکیک شوند تا زمان بارگذاری موازی افزایش یابد.
مثال عملی (مانند IDM)
عملکرد HTTP/2 مشابه اینترنت دانلود منیجر (IDM) است. زمانی که IDM یک فایل را به چندین بخش تقسیم کرده و هر بخش را به صورت همزمان دانلود میکند تا سرعت کلی دانلود افزایش یابد، HTTP/2 نیز ریسورسهای وبسایت را به صورت همزمان بارگذاری میکند. درک این مکانیسم کلیدی، شما را در تصمیمگیریهای مربوط به بهینهسازی سرعت (خصوصاً استفاده از تنظیمات افزونههای کش) هدایت خواهد کرد.
تسلط بر اصول HTTP/2 و تکنیکهای تفکیک منابع، یکی از مهمترین گامها در بهینهسازی سرعت در عصر مدرن سئو است. این دانش به شما امکان میدهد که به جای دنبال کردن تنظیمات منسوخ، بر کاهش حجم بزرگترین فایلها و افزایش بارگذاری موازی تمرکز کنید. برای فراگیری کامل این تکنیکهای حیاتی، در دوره سامورایی ثبتنام نمایید.