نحوه کاهش تعداد درخواست HTTP یکی از مهمترین چالش ها در زمینه سرعت سایت است. ما در این مقاله آموزش چگونگی پایین آوردن HTTP requests را فراخواهیم گرفت و به این واسطه ارور Make fewer HTTP requests در YSlow جی تی متریکس هم نیز رفع میشود.
مقدمه ارور Make fewer HTTP requests در YSlow
در این مقاله قصد داریم درباره ارور Make fewer HTTP requests صبحت کنیم و بررسی کنیم منظور از خطا HTTP request چیست و اینکه رفع آن چگونه باعث بهینه سازی سرعت سایت ما میشود.
اگر دقت کرده باشید در سایت GTmetrix.com مشکل درخواستها در Yslow را با خطای Make fewer HTTP requests نشان میدهد که کلمه fewer به معنای کمتر است کلمه request هم به معنای درخواست است. خطای Make fewer HTTP requests اشاره میکند که درخواست HTTP کمتر بسازید، توجه داشته باشید هر سه عبارت زیر به یک معنا است و یک هدف دارند:
Make fewer HTTP requests – درخواست HTTP کمتر بسازید
Reduce HTTP requests – کاهش درخواست HTTP
Minimize HTTP requests – به حداقل رساندن درخواست HTTP
وقتی کاربری میخواهد توسط مرورگر خود مثلا وارد سایت سئوراز شود باید آدرس سایت mizfa.com را وارد نمایید، وقتی آدرس را وارد میکند مرورگر یک درخواستی ارسال میکند برای پیدا کردن ای پی سایت سئوراز به کمک ISP های منطقه و جهانی، بعد از دریافت پاسخ و باز بودن پورتهای لازمه، مرورگر در اینجا تعدادی درخواست HTTP ارسال میکند تا بعد از پاسخ سرور بتواند سایت را برای کاربر نشان دهد، به اولین بایت از پاسخی که سرور به مرورگر ارسال میکند Time to First Byte یا به اختصار TTFB گویند.
هر چه تعداد درخواست های HTTP بیشتر باشد زمان زیادی برای ردوبدل کردن اطلاعات بین سرور و مرورگر به طول میانجامد.
درخواست های http شامل :
عکسها
فایلهای استایل سی اس اس (CSS)
فایلهای جاوااسکریپت (JS)
و … میتواند باشد.
شاید باید گفت که مهمترین روش برای بهبود کلی تعداد درخواستها و کاهش آنها ادغام اصولی فایلها میباشد که مستقیم بر روی تعداد درخواست های HTTP اثرگذار است.
ارور Make fewer HTTP requests در کمتر سایتی سبز رنگ است چرا که برای رفع این خطا باید خطاهای بسیاری را رفع کنید و برای همین ما خطاهایی که به شکل مستقیم یا غیرمستقیم بر روی بهبود درخواستهای HTTP تاثیر گذار هستند را به ترتیب اولویت قرار دادهایم.
خطاهای مربوط به درخواست HTTP
رفع خطای Minimize request size : ارور Minimize request size دقیقا همانند ارور Make fewer HTTP requests هست صرفا نام آنها فرق دارد و آنکه اولی مربوط به گوگل میباشد و خطای fewer HTTP مربوط به یاهو است. درحالی که هر دو خطا به یک هدف اشاره میکنند ولی در اکثر موارد Minimize request size سبز رنگ است و fewer HTTP قرمز رنگ. به هرحال با رعایت و رفع فاکتورهای Minimize request size میتوان تا حد زیادی باعث بهبود خطای fewer HTTP شد.
رفع خطای Inline small CSS and JavaScript : این خطا میگوید اگر فایلهای CSS و یا فایلهای JS که دارای حجم کوتاه هستند را در یک خط قرار دهید، در اینجا inline به معنای قرار دادن فایلهای CSS کوچک در یک خط است به عبارت دیگر منظور این خطا این است که فایلهای CSS و JS کوتاه را ادغام کنید.
رفع خطای Combine images using CSS sprites : اگر تعداد عکسهای کوچک در طراحی سایت(طراحی سایت شرکتی، طراحی سایت فروشگاهی) خود زیاد باشد به مراتب تعداد درخواستها هم بیشتر و درگیری سرور هم بالا میرود، در روش CSS sprites با ترکیب تمام تصاویر در یک عکس و درج مختصات به آن به کمک CSS از قسمتهای مختلف عکس در مکان دلخواه استفاده میکنیم، در این روش تنها یک درخواست برای یک تصویر به سرور ارسال میشود ولی چندین بار از عکس در قسمتهای مختلف قالب استفاده میشود. با انجام این روش سرعت وب سایت بسیار بیشتر میشود.
رفع خطای Defer parsing of JavaScript : هنگام بارگذاری صفحهی از سایت، مرورگر کاربر بایستی محتوای همه فایلهای جاوا اسکریپت را خوانده و اجرا کند، که این کار مسلماً زمان بر خواهد بود. برای همین پیشنهاد میشود تا فایلهای جاوا اسکریپت را در پایین صفحه فراخوانی کنید تا زمان بارگذاری اولیه صفحه وبسایتتان را کاهش دهید، و اگر چنین نباشد تعداد درخواستهای اولیه HTTP بالا رفته و سایت نیز به شکل سریع برای کاربر لود نمیشود.
رفع خطای Serve resources from a consistent URL : این خطا وقتی رخ میدهد اگر شما دو عکس یکسان را با دو آدرس متفاوت در صفحهای از طراحی سایت (قیمت طراحی سایت) خود بارگذاری نمایید، این عمل باعث میشود که تعداد درخواستهای سمت سرور بالا رود و وقتی درخواستهای HTTP افزایش یابد، سرور بیشتر درگیر پاسخ میشود.
رفع خطای Enable Keep Alive : اگر Keep Alive فعال نباشد این مفهوم را میرساند که مرورگر بیش از یک فایل را در آن واحد نمیتواند درخواست کند آن موقع مرورگر برای دریافت همه فایلها هر بار درخواست جداگانه ارسال میکند و اگر سرور هر بار جداگانه پاسخ بدهد حاصل آن، زمان زیادی برای دریافت تمام فایلها تلف خواهد شد. درواقع رفع این خطا باعث بهبود درخواست های HTTP میشود و اجازه میدهد در یک واحد از زمانی در قالب یک درخواست، چند درخواست دیگر هم بفرستد.
رفع خطای Leverage browser caching : فعال سازی کش هم بسیار میتواند در کاهش تعداد درخواستها موثر باشد ولی نه برای کاربرانی که اولین بار از سایت شما بازدید میکنند، قطعا شما عکسها و فایلهایی مشترک در بین صفحات خود دارید و اگر کاربر قصد داشته باشد در وب سایت شما وبگردی بکند باید طوری تنظیم کنید که این فایلهای مشترک در بین صفحات هر بار نخواهد درخواست سمت سرور ارسال کنید و از آن بخواهد، با کش کردن چنین فایلهایی بازدیدهای دوباره درخواستهای کمتری دارند و مرورگر قبل از درخواست HTTP به کش لوکال یا محلی خود نگاه میکند و اگر در آنجا کش شده باشد دیگر درخواستی ارسال نمیکند.
سایز موارد در کاهش درخواست های HTTP استفاده از CDN استفاده از حالت تنبل فایلها غیرفعال کردن یا حذف کردن پلاگینها، اسکریپتها و کدهایی که لازم نیست و در سایت غیرضروری هستند. تغییر پلاگینها، اسکریپتها و کدهایی که به شکل فلهای درخواستهای HTTP نیز ارسال میکنند.
افزونه مفید وردپرس جهت کاهش HTTP requests
برخی از پلاگینهای مفید مخصوص وردپرس برای رفع بعضی از این خطاها :