টাইম টু ফার্স্ট বাইট (TTFB)

ব্রাউজার সমর্থন

  • ক্রোম: 43।
  • প্রান্ত: 12।
  • ফায়ারফক্স: 35।
  • সাফারি: 11।

উৎস

TTFB কি?

TTFB হল একটি মেট্রিক যা একটি রিসোর্সের জন্য অনুরোধ এবং যখন একটি প্রতিক্রিয়ার প্রথম বাইট আসতে শুরু করে তার মধ্যে সময় পরিমাপ করে।

নেটওয়ার্ক অনুরোধের সময়গুলির একটি ভিজ্যুয়ালাইজেশন। বাম থেকে ডানে সময়গুলি হল রিডাইরেক্ট, সার্ভিস ওয়ার্কার ইনিট, সার্ভিস ওয়ার্কার ফেচ ইভেন্ট, HTTP ক্যাশে, ডিএনএস, টিসিপি, রিকোয়েস্ট, আর্লি হিন্টস (103), রেসপন্স (যা আনলোডের জন্য প্রম্পটের সাথে ওভারল্যাপ করে), প্রসেসিং এবং লোড। সংশ্লিষ্ট সময়গুলি হল রিডাইরেক্টস্টার্ট এবং রিডাইরেক্টএন্ড, ফেচস্টার্ট, ডোমেইনলুকআপস্টার্ট, ডোমেনলুকআপএন্ড, কানেক্টস্টার্ট, সিকিউর কানেকশনস্টার্ট, কানেক্টএন্ড, রিকোয়েস্টস্টার্ট, ইন্টারিম রেসপন্সস্টার্ট, রেসপন্সস্টার্ট, আনলোড ইভেন্ট স্টার্ট, আনলোড ইভেন্টএন্ড, রেসপন্সএন্ড, domInteractive, domEventStart domContentLoadedEventEnd, domComplete, loadEventStart এবং loadEventEnd।
নেটওয়ার্ক অনুরোধের পর্যায়গুলির একটি চিত্র এবং তাদের সম্পর্কিত সময়। TTFB startTime এবং responseStart মধ্যে অতিবাহিত সময় পরিমাপ করে।

TTFB হল নিম্নলিখিত অনুরোধের ধাপগুলির সমষ্টি:

  • সময় পুনর্নির্দেশ করুন
  • পরিষেবা কর্মী শুরুর সময় (যদি প্রযোজ্য হয়)
  • DNS সন্ধান
  • সংযোগ এবং TLS আলোচনা
  • অনুরোধ, প্রতিক্রিয়ার প্রথম বাইটটি আসার আগে পর্যন্ত

সংযোগ সেটআপের সময় এবং ব্যাকএন্ডে লেটেন্সি হ্রাস করা আপনার TTFB কমিয়ে দিতে পারে।

TTFB এর অন্যান্য সংজ্ঞা

পূর্ববর্তী সংজ্ঞাটি প্রচলিত সংজ্ঞা কিন্তু প্রারম্ভিক ইঙ্গিতগুলির প্রবর্তনের সাথে যেটিকে "প্রথম বাইট" হিসাবে বিবেচনা করা হয় তা বিতর্কের জন্য রয়েছে। firstInterimResponseStart হল এর মধ্যে পার্থক্য করার জন্য responseStart এর একটি নতুন অতিরিক্ত টাইমিং এন্ট্রি কিন্তু এটি শুধুমাত্র Chrome এবং Chromium-ভিত্তিক ব্রাউজারে সমর্থিত। তাই কিছু ব্রাউজার এবং টুল ( CrUX সহ ) প্রাথমিক ইঙ্গিত সহ প্রথম বাইট প্রাপ্ত না হওয়া পর্যন্ত পরিমাপ করে।

প্রারম্ভিক ইঙ্গিতগুলি প্রথম দিকে সাড়া দেওয়ার একটি নতুন উদাহরণ। কিছু সার্ভার মূল অংশ উপলব্ধ হওয়ার আগে নথির প্রতিক্রিয়া ফ্লাশ করার অনুমতি দেয়—হয় শুধুমাত্র HTTP শিরোনাম দিয়ে, অথবা <head> উপাদানের সাথে, উভয়কেই প্রারম্ভিক ইঙ্গিতগুলির সাথে একই রকম বিবেচনা করা যেতে পারে এবং তাই সংজ্ঞাটিও ক্লাউড করা যেতে পারে। TTFB কি পরিমাপ করে।

ডকুমেন্টের জন্য ক্রিয়াযোগ্য ডেটার "প্রথম বাইট" কখন ব্রাউজার দ্বারা গৃহীত হয় তার পরিমাপ হিসাবে, এই সমস্ত সংজ্ঞাগুলি বৈধ বলে বিবেচিত হতে পারে, যদি সম্পূর্ণ প্রতিক্রিয়া পেতে আরও কিছু সময় লাগে তবে তাড়াতাড়ি ডেটা ফেরত পাঠানোর প্রকৃত মূল্য রয়েছে। . আপনি যে পরিমাপ সরঞ্জামটি ব্যবহার করছেন তা কী পরিমাপ করা হচ্ছে এবং প্ল্যাটফর্মের পরিমাপ কীভাবে প্রভাবিত হচ্ছে তা বোঝা সবচেয়ে গুরুত্বপূর্ণ। এটি বিভিন্ন প্ল্যাটফর্ম বা প্রযুক্তি জুড়ে TTFB তুলনা করা কঠিন করে তোলে তারা কোন বৈশিষ্ট্যগুলি ব্যবহার করে এবং এটি কীভাবে ব্যবহৃত হচ্ছে TTFB পরিমাপকে প্রভাবিত করে তার উপর নির্ভর করে।

TTFB কে প্রায়ই সার্ভার বা হোস্ট রেসপন্স সময়ের সূচক হিসাবে বিবেচনা করা হয়। যাইহোক, এটি সেই প্রত্যক্ষ নিয়ন্ত্রণের বাইরের কারণগুলির দ্বারা প্রভাবিত হবে যেমন পুনঃনির্দেশিত সময়, এটি একটি CDN দ্বারা আঘাত করা ক্যাশে থেকে পরিবেশন করা হোক বা একটি অরিজিন সার্ভারে ফিরে যাওয়ার সম্ভাব্য দীর্ঘ যাত্রা করা হোক। এটি ফিল্ড ডেটাতে বিশেষভাবে স্পষ্ট—ল্যাব টেস্টিং সাধারণত এই কারণগুলির দ্বারা কম প্রভাবিত হয় যেহেতু শেষ URLটি সাধারণত পরীক্ষা করা হয় এবং প্রায়শই বারবার ক্যাশিং পরিবর্তনগুলিকে অস্বীকার করে৷ লাইটহাউস এটি পরিষ্কার করার জন্য TTFB এর পরিবর্তে সার্ভারের প্রতিক্রিয়া সময় রিপোর্ট করে কিন্তু অন্যান্য ল্যাব সরঞ্জামগুলি নাও হতে পারে।

একটি ভাল TTFB স্কোর কি?

যেহেতু TTFB ব্যবহারকারী-কেন্দ্রিক মেট্রিক্সের আগে যেমন ফার্স্ট কনটেন্টফুল পেইন্ট (FCP) এবং সবচেয়ে বড় বিষয়বস্তু পেইন্ট (LCP) , তাই এটি সুপারিশ করা হয় যে আপনার সার্ভার নেভিগেশন অনুরোধে দ্রুত প্রতিক্রিয়া জানায় যাতে ব্যবহারকারীদের 75 তম শতাংশ "ভাল" থ্রেশহোল্ডের মধ্যে একটি FCP অনুভব করে . একটি মোটামুটি নির্দেশিকা হিসাবে, বেশিরভাগ সাইটের 0.8 সেকেন্ড বা তার কম TTFB থাকার চেষ্টা করা উচিত।

ভাল TTFB মান 0.8 সেকেন্ড বা তার কম, খারাপ মান 1.8 সেকেন্ডের বেশি এবং এর মধ্যে যেকোন কিছুর উন্নতি প্রয়োজন
ভাল TTFB মানগুলি 0.8 সেকেন্ড বা তার কম এবং খারাপ মানগুলি 1.8 সেকেন্ডের বেশি।

কিভাবে TTFB পরিমাপ করা যায়

TTFB নিম্নলিখিত উপায়ে ল্যাবে বা ক্ষেত্রে পরিমাপ করা যেতে পারে।

ক্ষেত্র সরঞ্জাম

ল্যাব সরঞ্জাম

জাভাস্ক্রিপ্টে TTFB পরিমাপ করুন

আপনি নেভিগেশন টাইমিং API এর মাধ্যমে ব্রাউজারে নেভিগেশন অনুরোধের TTFB পরিমাপ করতে পারেন। নিম্নলিখিত উদাহরণ দেখায় কিভাবে একটি PerformanceObserver তৈরি করতে হয় যা একটি navigation এন্ট্রি শোনে এবং এটি কনসোলে লগ করে:

new PerformanceObserver((entryList) => {
  const [pageNav] = entryList.getEntriesByType('navigation');

  console.log(`TTFB: ${pageNav.responseStart}`);
}).observe({
  type: 'navigation',
  buffered: true
});

web-vitals জাভাস্ক্রিপ্ট লাইব্রেরি ব্রাউজারে আরও সংক্ষিপ্তভাবে TTFB পরিমাপ করতে পারে:

import {onTTFB} from 'web-vitals';

// Measure and log TTFB as soon as it's available.
onTTFB(console.log);

সম্পদ অনুরোধ পরিমাপ

TTFB সমস্ত অনুরোধের ক্ষেত্রে প্রযোজ্য, শুধু নেভিগেশন অনুরোধ নয়। বিশেষ করে, ক্রস-অরিজিন সার্ভারগুলিতে হোস্ট করা সংস্থানগুলি সেই সার্ভারগুলিতে সংযোগ স্থাপন করার প্রয়োজনের কারণে বিলম্বিত হতে পারে। ক্ষেত্রের সংস্থানগুলির জন্য TTFB পরিমাপ করতে, একটি PerformanceObserver মধ্যে রিসোর্স টাইমিং API ব্যবহার করুন:

new PerformanceObserver((entryList) => {
  const entries = entryList.getEntries();

  for (const entry of entries) {
    // Some resources may have a responseStart value of 0, due
    // to the resource being cached, or a cross-origin resource
    // being served without a Timing-Allow-Origin header set.
    if (entry.responseStart > 0) {
      console.log(`TTFB: ${entry.responseStart}`, entry.name);
    }
  }
}).observe({
  type: 'resource',
  buffered: true
});

পূর্ববর্তী কোড স্নিপেটটি একটি নেভিগেশন অনুরোধের জন্য TTFB পরিমাপ করতে ব্যবহৃত কোডের মতো, 'navigation' এন্ট্রিগুলির জন্য অনুসন্ধানের পরিবর্তে, আপনি পরিবর্তে 'resource' এন্ট্রিগুলির জন্য অনুসন্ধান করুন৷ এটি এই সত্যটির জন্যও দায়ী যে প্রাথমিক উত্স থেকে লোড করা কিছু সংস্থান 0 এর একটি মান ফেরত দিতে পারে, যেহেতু সংযোগটি ইতিমধ্যেই খোলা আছে, বা একটি সম্পদ তাত্ক্ষণিকভাবে একটি ক্যাশে থেকে পুনরুদ্ধার করা হয়েছে।

কিভাবে TTFB উন্নত করা যায়

আপনার সাইটের TTFB উন্নত করার বিষয়ে নির্দেশনার জন্য, TTFB অপ্টিমাইজ করার জন্য আমাদের গভীর নির্দেশিকা দেখুন।