ডায়নামিক সার্ভিং

ডায়নামিক সার্ভিং হল এমন একটি সেট-আপ, যেখানে কোন ইউজার-এজেন্ট মোবাইল, ট্যাবলেট বা ডেস্কটপের পৃষ্ঠাকে অনুরোধ করছে, তার উপরে নির্ভর করে সার্ভার একই ইউআরএলের জন্য বিভিন্ন HTML (এবং CSS) পাঠিয়ে থাকে।

মোবাইল ইউজার এজেন্টের ('ডেস্কটপ ইউজার এজেন্ট' দিয়ে ক্রল করা হলে, মোবাইল কন্টেন্ট "লুকানো" থাকে) ক্ষেত্রে, সাইট HTML-এ পরিবর্তন করে দিলেও, সেটি সঙ্গে সঙ্গে বোঝা যায় না। তাই আমরা সাজেস্ট করি যাতে সার্ভার Googlebot-কে স্মার্টফোনের ক্ষেত্রেও পৃষ্ঠাটিকে ক্রল করার একটি অনুরোধের ইঙ্গিত পাঠাতে পারে এবং এর ফলে মোবাইল কন্টেন্টকেও খুঁজে পাওয়া সম্ভব হবে। এটি Vary HTTP হেডার ব্যবহার করে জানানো যায়।

ডায়নামিক সার্ভিং কীভাবে কাজ করে সেটির গ্রাফিক উপস্থাপনা
ডায়নামিক সার্ভিং একই ইউআরএলের জন্য প্রতিটি ডিভাইসে আলাদা আলাদা কোড প্রদান করে।

TL;DR

  • ইউজার-এজেন্টের উপর নির্ভর করে পরিবর্তনের কথা জানাতে Vary HTTP হেডার ব্যবহার করুন।
  • ইউজার-এজেন্ট স্ট্রিং সঠিকভাবে শনাক্ত করুন।

Vary HTTP হেডার

Vary HTTP হেডারের দুটি গুরুত্বপূর্ণ ব্যবহার আছে:

  • ISP সহ অন্যান্য জায়গায় ব্যবহৃত ক্যাশিং সার্ভারকে কোনও পৃষ্ঠা ক্যাশে থেকে দেখানো হবে কিনা সেটি নির্ধারণ করার সময় ইউজার-এজেন্টকে বিবেচনা করতে এটি নির্দেশ দেয়। Vary HTTP হেডার ব্যবহার না করলে, মোবাইল ব্যবহারকারীকে ভুল করে ডেস্কটপ HTML পৃষ্ঠার ক্যাশের ভার্সনটি দেখানো হতে পারে অথবা তার বিপরীতটিও ঘটতে পারে।
  • মোবাইলের জন্য অপ্টিমাইজ করা কন্টেন্ট আছে এমন ইউআরএল ক্রল করতে আমরা সঠিক Vary HTTP হেডারকে অন্যতম সঙ্কেত হিসেবে ব্যবহার করতে পারি। তাই মোবাইলের জন্য অপ্টিমাইজ করা কন্টেন্ট আরও দ্রুত খুঁজে পেতে এটি Googlebot-কে সাহায্য করে।

কোনও অনুরোধের উত্তরে সার্ভারের প্রতিক্রিয়ার একটি অংশ হিসেবে Vary HTTP হেডারের একটি উদাহরণ নিচে দেওয়া হল:

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710
(... rest of HTTP response headers...)

Vary HTTP হেডার ব্রাউজারকে জানায় যে কোন ইউজার এজেন্ট পৃষ্ঠাটির জন্য অনুরোধ করছে তার উপর নির্ভর করে রেসপন্সের কন্টেন্টের পরিবর্তন হয়ে থাকে। আপনার সার্ভার আগে থেকেই Vary HTTP হেডার ব্যবহার করলে, আপনি ইতিমধ্যে দেখানো লিস্টে User-Agent-টিকে যোগ করতে পারেন।

ইউজার এজেন্টকে সঠিকভাবে শনাক্ত করা

ইউজার-এজেন্ট শনাক্ত করার সময় (এটি ইউজার-এজেন্ট "স্নিফিং" নামেও পরিচিত) ভুল হতে পারে। এর অনেক কারণ আছে, কিন্তু বেশিরভাগ ক্ষেত্রে এই তিন ধরনের সমস্যা দেখা যায়:

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

  3. ইউজার এজেন্টকে শনাক্ত করার সময়, আপনাকে ক্লোকিং-এর ব্যাপারে যথেষ্ট সজাগ থাকতে হবে। ইউজার-এজেন্ট শনাক্ত করার সময় সেটির স্ট্রিংয়ে উল্লেখ করা ডিভাইসের নামের উপর নির্ভর করে সাইটটি যেন ডিভাইসের ক্লাস বা প্রকার বোঝার চেষ্টা করে, নির্দিষ্টভাবে Googlebot না খোঁজে। সমস্ত Googlebot ইউজার এজেন্ট নিজেদের 'বিশেষ মোবাইল ডিভাইস' হিসেবে পরিচয় দিয়ে থাকে এবং আপনি এই ডিভাইসগুলির ক্ষেত্রে সাধারণত যা করে থাকেন, Googlebot-এর ইউজার এজেন্টদের ক্ষেত্রেও ঠিক তাই করবেন।

    Googlebot-এর মতো, ক্রলারের জন্য কন্টেন্টকে প্রি-রেন্ডারিংয়ের ফিচার ঠিকভাবে সেট-আপ করা থাকলে, সেটিকেক্লোকিং বলে ধরা হয় না