کاهش زمان پاسخگویی سرور
یکی از عواملی که بر تجربه کاربر از مراجعه به سایت تاثیرگذار است، مدت زمان بارگذاری سایت و پاسخ سرور است. با توجه به اینکه افراد برای انجام تمام امور روزمره خود از روشهای آنلاین استفاده میکنند، عاملی که میتواند در این بازار مزیت اصلی برای رقابت محسوب شود، سرعت پاسخدهی بالای یک سایت است. ابر زس در این مقاله سعی دارد عواملی که بر سرعت سایت تاثیرگذار هستند و راههای کاهش زمان پاسخگویی سرور را اطلاع دهد.
زمان پاسخگویی سرور، TTFB
وقتی یک کاربر وارد سایت میشود انتظار دارد که دسترسی به اطلاعات آن سایت با سرعت تمام انجام شود. معمولا بارگذاری اولیه سایت نقش مهمی در اینکه کاربر به استفاده از سایت ادامه دهد یا نه، ایفا میکند. بر اساس تحقیقاتی که انجام شده، معمولا نزدیک به نیمی از کاربران سایتی که در مدت زمان بیش از سه ثانیه لود شود را رها میکنند. در نتیجه خیلی مهم هست که کسبوکارها اقدامات لازم برای کاهش زمان پاسخگویی سرور خود را انجام دهند.
اما منظور از زمان پاسخگویی سرور چیست؟ این عبارت با اصطلاح TTFB (Time To First Byte) شناخته میشود. در مقاله سرور dns چیست توضیح دادیم که وقتی شما آدرس یک سایت را در نوار آدرس وارد میکنید، معمولا 4 سرور به صورت همزمان کار میکنند تا بتوانند آیپی سایت را در اختیار سرور اصلی قرار دهند و دسترسی به سایت را امکان پذیر کنند. به زمانی که سپری میشود تا به اطلاعات یک سایت دسترسی پیدا کنید، زمان پاسخگویی سرور یا زمان اولین بایت گفته میشود که گوگل آن را مدت زمان انتظار تعریف میکند. این بازه زمانی نقش بسیار مهمی در تجربه کاربر از مراجعه به سایت شما ایفا میکند.
سرور پاسخ به درخواست شما را چگونه ایجاد می کند؟
وقتی که یک کاربر درخواست دسترسی به سایت شما را میدهد، این درخواست به سرور DNS ارسال میشود و این سرور با تعاملی که با بقیه سرورها برقرار میکند، آدرس آیپی سایت را در اختیار شما قرار میدهد تا بتوانید به اطلاعات درج شده در سایت دسترسی پیدا کنید. این فرآیند به فاکتورهای زیادی مانند سرعت انتقال شبکه، مدت زمان دریافت دادهها (latency)، راندمان کد اپلیکیشن و عملکرد سرور بستگی دارد.
به طور کلی زمان پاسخگویی سرور با سه فاکتور تعریف میشود:
-
مدت زمانی که برای ارسال درخواست HTTP سپری میشود
وقتی شما آدرس سایت را وارد می کنید، TTFB با درخواست HTTP شروع میشود. مدت زمانی که طول میکشد تا سرور درخواست شما را دریافت کند به فاکتورهایی مانند زمانی که طول میکشد تا سرور DNS به آیپی سایت دسترسی پیدا کند، سرعت اینترنت کاربر، فاصله تا سرور و اختلالاتی که در اتصال به اینترنت ایجاد میشود، بستگی دارد.
-
زمانی که سپری میشود تا سرور درخواست را پردازش کند
وقتی که آیپی سایت از طریق سرور DNS در اختیار سیستم شما قرار گرفت، به سرور اصلی سایت ارسال میشود تا دسترسی به اطلاعات آن را میسر کند. وقتی سرور اصلی این درخواست را دریافت کند، باید پاسخ مناسب برای آن ایجاد کند. این فرآیند شامل مراحلی مانند فراخوانی دیتاهای سایت، اجرا کردن اسکریپتها و برقراری ارتباط با دیگر سیستمهای شبکه میشود.
-
زمانی که سپری میشود تا سرور اصلی سایت اولین بایت پاسخ را به مرورگر ارسال کند
در نهایت، سرور باید پاسخ ایجاد شده را به کاربر ارسال کند. این مرحله به سرعت اینترنت سرور و کاربر بستگی دارد. اگر کاربر اینترنت ضعیفی داشته باشد، میتواند روی TTFB تاثیر گذار باشد.
به طور کلی هرچه مدت زمان ارسال درخواست به سرور، پردازش و ارسال آن به مرورگر کاربر بیشتر باشد، زمان نمایش اطلاعات آن روی صفحه نمایش کاربر نیز بیشتر میشود.
زمان مناسب پاسخگویی سرور چقدر است؟
از نظر گوگل، مناسبترین زمان پاسخگویی سرور 200 میلی ثانیه است. اگر برای بهبود عملکرد سایت خود از ابزار lighthouse استفاده کنید و زمان پاسخگویی سرور شما بیش از 600 میلی ثانیه باشد، این برنامه نمیتواند کمکی به سایت شما کند. اگر TTFB سایت شما از چند صد میلی ثانیه بیشتر باشد، قطعا موانعی در مسیر راهاندازی آن وجود دارد که باید به آن رسیدگی کنید. بر اساس پیشنهاد گوگل، یک سایت باید درخواست و ورودی کاربر را در 50 میلی ثانیه پردازش کند تا مطمئن شوید دسترسی به سایت در مدت زمان 100 میلی ثانیه ایجاد میشود.
راه های محاسبه TTFB
از روش های مختلفی می توان TTFB را اندازه گیری کرد و هرکدام ممکن است عدد متفاوتی بدهند. به همین دلیل بهتر است همیشه از یک روش که آشنایی بیشتری دارید و برای شما راحتتر است استفاده کنید. با استفاده از 4 روش زیر می توانید از زمان پاسخگویی سرور خود آگاه شوید:
-
استفاده از GTmetrix برای محاسبه TTFB
شما میتوانید زمان پاسخگویی سایت را با استفاده از سایت GTmetrix محاسبه کنید که این بازه زمانی را با عنوان “زمان انتظار- waiting” معرفی میکند. برای این کار وارد سایت GTmetrix شوید، آدرس سایت مورد نظر را در کادر وارد کنید تا نتیجه آنالیز را ببینید. شما میتوانید نتیجه مربوط به سایت را در تب waterfall مشاهده کنید.
در مورد سایت GTmetrix باید این موارد را در نظر داشته باشید:
- این سایت TTFB را از موقعیت کانادا مورد بررسی قرار میدهد.
- نتیجهای که میدهد به سرعت هاست سایت مورد نظر شما بستگی دارد.
- نتیجهای که دریافت میکنید با هر بار تلاش، متفاوت است.
-
استفاده از WebPageTest برای محاسبه TTFB
این سایت یکی دیگر از سایتهایی است که میتواند زمان پاسخگویی سرور شما را اندازه گیری کند. وارد صفحه اصلی سایت شده، آدرس سایت خود را وارد کنید تا زمان پاسخگویی سایت را به شما نشان دهد.
-
استفاده از Pingdom برای محاسبه TTFB
این سایت زمان پاسخگویی سرور را با عبارت “زمان انتظار- waiting” نشان میدهد. برای استفاده از این ابزار، آدرس سایت خود را وارد کنید و منتظر باشید تا نتیجه آنالیز را نشان دهد. زمان TTFB در قسمت File Request نشان داده میشود. در نظر داشته باشید که این سایت بیشتر برای اعلام میزان uptime برای هاست به کار میرود و آمار لحظهای که میدهد قابل استناد و صحیح نیست. برای داشتن اطلاعات درست میبایست بازه زمانی دو ماهه را در نظر بگیرید.
-
استفاده از keyCDN برای محاسبه TTFB
این ابزار یکی دیگر از سایتهای محاسبه زمان پاسخگویی سرور است که این زمان را از 14 کشور مختلف مورد بررسی قرار میدهد. اما نکته قابل توجه این است که اطلاعات را از CDN سایت مورد نظر شما گرفته میشود، بالطبع اگر یک سایت CDN داشته باشد زمان پاسخگویی سرور کمتری را نشان میدهد. برای استفاده از این سایت به موارد زیر توجه کنید:
- زمان اولین پاسخ CDN اطلاع رسانی میشود.
- اینکه چه CDN ای برای سایت استفاده شده باشد در نتیجه سایت تاثیر دارد.
- سرویس دهنده سایت و کشوری که در آن استقرار دارد، در زمانی که گزارش داده میشود تاثیرگذار است.
- موقعیت سایت مورد نظر نسبت به سرویس دهنده CDN
کاهش زمان پاسخگویی سرور
حال که به طور کامل با زمان پاسخگویی سرور و نحوه محاسبه آن آشنا شدید، میتوانید از روشهای زیر برای کاهش این بازه زمانی استفاده کنید:
-
هاست خود را تغییر دهید
یکی از رایجترین دلایل بالا بودن زمان TTFB، هاست ضعیف است. اگر سرور سایت شما تنظیمات ضعیفی داشته باشد یا به اندازهای قوی نباشد که بتواند پاسخ سریعی به مراجعه کننده دهد زمان پاسخگویی سرور را بالا میبرد. وقتی صحبت از تهیه هاست باشد، به این معنی است که هرچه بیشتر هزینه کنید و هاست قویتری تهیه کنید، سرعت دسترسی به سایت خود را بالاتر میبرید. با تهیه هاست ضعیت فقط سایت خود را از دسترس عموم خارج میکنید.
-
سرور خود را تا حد ممکن به موقعیت مکانی کاربران خود نزدیک کنید
یکی از مهمترین عوامل تعیین کننده سرعت پاسخگویی سرور، فاصله از سرور سایت است. به عنوان مثال، اگر جامعه هدف شما افراد ساکن در ایران باشند و سرور سایت در آمریکا باشد، درخواستی که به سرور ارسال میشود باید این فاصله زیاد را طی کند و دوباره به مرورگر شما برسد تا بتواند پاسخ مناسب را تامین کند. بالطبع هرچه این فاصله بیشتر باشد، مدت زمان بیشتری سپری میشود تا پاسخ مناسب تامین شود. به همین دلیل، نزدیک بودن سرور هاست به موقعیت مکانی جامعه هدف از اهمیت بالایی برخوردار است. اگر کاربران سایت شما متشکل از افراد ایرانی است، بهتر است که از سرورهای داخلی استفاده کنید. شما میتوانید بهترین کیفیت و خدمات پس از فروش سرور را از ابر زس تهیه کنید.
-
از افزونه caching استفاده کنید
یکی از راحتترین کارهایی که میتواند به شما کمک کند سرعت پاسخگویی سرور را افزایش دهید، استفاده از افزونه caching است. اگر از این افزونه استفاده کنید، اطلاعات سایت شما بعد از اولین بار مراجعه به صورت کش ذخیره میشود و دسترسی به آن را در دفعات بعد سریعتر میکند. اگر این اتفاق نیافتد، با هر بار مراجعه باید مراحل مختلفی را سپری کند و اطلاعات را از پایگاه داده جمعآوری کند و کنار هم قرار دهد. هنگامی که از این افزونه استفاده میکنید، سرور وب یک نسخه پیش ساخته از سایت را ذخیره میکند و با هر درخواست نمایش میدهد. افزونههای مختلفی برای این کار وجود دارند که شما میتوانید از آن استفاده کنید.
-
از یک تامین کننده DNS سریعتر استفاده کنید
یکی از فاکتورهایی که هنگام تاسیس سایت باید در نظر بگیرید، انتخاب تامین کننده DNS برای دسترسی به آیپی سایت است. وقتی کاربر آدرس سایت را وارد میکند، سرور DNS از طریق تعامل با سرورهای دیگر آیپی سایت را در اختیار مرورگر قرار میدهد تا به سرور اصلی سایت ارسال کند و به تمام اطلاعات آن دسترسی ایجاد کند. هرچه این بازه زمانی کوتاهتر باشد، زمان پاسخگویی سرور را کاهش میدهد. تامین کنندهای که سرور DNS سریعتری در اختیار شما قرار میدهد، میتواند سرعت دسترسی به سایت شما را کاهش دهد و تجربه بهتری برای کاربری که به سایت شما مراجعه میکند ایجاد کند.
-
از CDN استفاده کنید
CDN در واقع مخفف عبارت Content Delivery Network است. با استفاده از CDN برای وبسایت خود میتوانید اطلاعات استاتیکی مانند عکس، فایل css و جاوا اسکریپت را روی سرورهایی که به مراجعه کنندههای شما نزدیک هستند، ذخیره کنید. یک CDN میتواند سرعت سایت شما را با در اختیار قرار دادن سریعتر این فایلها به مراجعه کننده، بالا ببرد. CDN اثری بر کاهش TTFB اولیه سایت شما ندارد، اما TTFB فایلهای استاتیک را کاهش میدهد. کاری که CDN انجام میدهد مشابه افزونه کش است، اما تفاوتهای جزئی با آن دارد.
وقتی افزونه کش را برای یک سایت فعال میکنید، اطلاعات سایت را بسته به نوع افزونه میتواند تا ماهها روی هاست اصلی ذخیره کند. اما با نصب CDN، اطلاعات بر فضای دیگری که توسط CDN تامین میشود، میتواند تا 48 ساعت ذخیره شود.
راه حلی که میتوان به کاربریهای پیشرفتهتر پیشنهاد داد این است که تمام اطلاعات خود را روی CDN کش کنند. با کش کردن اطلاعات ایستا و فایلهای صفحه html اولیه، میتوانید سرعت پاسخگویی سرور خود را بیشتر کاهش دهید. این به این معنا است که CDN فقط اطلاعاتی مانند تصاویر را در اختیار شما نمیگذارد، بلکه صفحه اصلی وب را نیز فراهم میکند. با این روش کش کردن، به نظر میرسد که تمام سایت شما در آن واحد لود میشود. اما در نظر داشته باشید که این سیستم موانع خود را دارد و برای سایتهایی مناسب است که اطلاعات خود را خیلی تغییر نمیدهند.