به دنبال اعلام قبلی ، پشتیبانی از HTTP/2 Server Push به طور پیشفرض در Chrome 106 و سایر مرورگرهای مبتنی بر Chromium در نسخههای بعدی آنها غیرفعال میشود.
چرا این حذف می شود؟
HTTP/2 Server Push به وبسایتها این امکان را میدهد که بهجای منتظر ماندن برای درخواست، منابع مورد نیاز صفحه را فعالانه ارسال کنند. با این حال، همانطور که جیک آرچیبالد قبلاً در مورد آن نوشت مشکل ساز بود و درک مزایای عملکرد اغلب دشوار بود. در نتیجه، تنها 1.25 درصد از سایت های HTTP/2 از این ویژگی استفاده می کنند، چندان مورد استفاده قرار نگرفت.
تجزیه و تحلیل استفاده از فشار سرور HTTP/2 نتایج متفاوتی دارد ( Chrome ، Akamai )، بدون افزایش عملکرد خالص واضح و در بسیاری موارد رگرسیون عملکرد.
Push در بسیاری از سرورها و کلاینتهای HTTP/3 پیادهسازی نشد - حتی اگر در مشخصات گنجانده شده بود. برای بسیاری از وبهایی که از HTTP/3 جدیدتر استفاده میکنند ، Push عملاً قبلاً بازنشسته شده است. هنگامی که اخیراً آن تحلیل را دوباره اجرا می کنیم، می بینیم که پشتیبانی 1.25٪ HTTP/2 توسط سایت ها به 0.7٪ کاهش یافته است.
جایگزین های HTTP/2 Server Push
103 Early Hints یک جایگزین خطای بسیار کمتر با بسیاری از نقاط مثبت Push است و جنبههای منفی بسیار کمتری دارد. به جای اینکه سرور منابع را فشار دهد، 103 Early Hints فقط نکاتی را به مرورگر منابع ارسال می کند که ممکن است فوراً از درخواست آنها بهره مند شود. این امر باعث میشود مرورگر تصمیم بگیرد که آیا به این منابع نیاز دارد یا نه - برای مثال اگر قبلاً آن منابع را در حافظه پنهان HTTP داشته باشد.
پیش بارگیری منابع حیاتی جایگزین دیگری است که به صفحه و مرورگر اجازه می دهد تا با هم کار کنند تا منابع مهم را در اوایل بارگذاری صفحه بارگیری کنند. در حالی که این امر مستلزم این است که خود صفحه ابتدا ارسال شود - بنابراین به سرعت سرور یا نکات اولیه نیست - این مزیت اضافهای دارد که آن منبع صفحه حیاتی را به تأخیر نمیاندازد، که میتواند با هر دوی این راهحلها اتفاق بیفتد.
نتیجه گیری
وب باید بتواند چیزهایی را امتحان کند و در صورت عدم استفاده آنها را دور بیندازد. اگرچه پتانسیل Push عالی به نظر می رسید، اما در واقعیت استفاده از آن مشکل سازتر از آنچه تصور می شد بود. با این حال، ما چیزهای زیادی از Push یاد گرفتیم که به طراحی 103 Early Hints رفت. اکنون زمان آن است که پیشرفت را کامل کنید و از Push دور شوید.
منابع
- همه موارد لغو و حذف در Chromium
- ورودی ChromeStatus: فشار HTTP/2 را حذف کنید
- قصد حذف: فشار سرور HTTP/2 و gQUIC
- مشکل Chromium: HTTP/2 Push را بهطور پیشفرض خاموش کنید