Client, Server ও Internet কীভাবе কথা বলে
- ●Client (তোমার ব্রাউজার/অ্যাপ) request পাঠায়, Server সেটা প্রসেস করে response ফেরত দেয়।
- ●এই request একাধিক ধাপ — DNS, Load Balancer, Server, Cache, Database — পেরিয়ে আসে।
- ●প্রতিটা ধাপই system design-এর এক একটা গুরুত্বপূর্ণ টপিক।
Client আর Server — দুই চরিত্র
ইন্টারনেটের প্রায় সবকিছুই দুটো চরিত্রের গল্প:
- Client — যে কিছু চায়। তোমার ব্রাউজার, মোবাইল অ্যাপ — এরাই client।
- Server — যে সেই চাওয়া পূরণ করে। দূরে কোথাও থাকা শক্তিশালী কম্পিউটার।
Client একটা request পাঠায়, Server একটা response ফেরত দেয়। ব্যস, এটুকুই মূল ব্যাপার।
তুমি (client) ওয়েটারকে অর্ডার দাও (request)। রান্নাঘর (server) খাবার বানিয়ে পাঠায় (response)। তুমি জানো না রান্নাঘরে ঠিক কী হচ্ছে — তুমি শুধু অর্ডার দাও আর খাবার পাও। ইন্টারনেটও ঠিক তেমন।
একটা request আসলে কী কী পেরিয়ে আসে?
তুমি যখন google.com লিখে এন্টার চাপো, পেছনে অনেক কিছু ঘটে। নিচের টুলটাতে ক্লিক করে নিজে দেখো:
ধাপগুলো একটু বুঝে নিই
-
DNS lookup —
google.comতো একটা নাম। কিন্তু কম্পিউটার বোঝে সংখ্যা (IP ঠিকানা, যেমন142.250.x.x)। DNS হলো ইন্টারনেটের ফোনবুক, যা নামটাকে IP-তে বদলে দেয়। -
Load Balancer — Google-এর তো একটা server নয়, হাজার হাজার। কোন server-এ তোমার request যাবে সেটা ঠিক করে দেয় load balancer।
-
Server — request প্রসেস করে। হয়তো তোমার কী দরকার সেটা বুঝে নেয়।
-
Cache — আগে থেকে তৈরি করা উত্তর হাতের কাছে রাখা থাকে। থাকলে দ্রুত সেখান থেকেই দিয়ে দেয়।
-
Database — cache-এ না থাকলে মূল ভাণ্ডার, database থেকে ডেটা আনা হয়।
তারপর response একই পথে তোমার কাছে ফিরে আসে।
মজার ব্যাপার — এই পুরো যাত্রা সাধারণত হয় চোখের পলকের চেয়েও কম সময়ে! আমাদের কাজ হলো এই যাত্রাটাকে যত দ্রুত আর নির্ভরযোগ্য করা যায়, তত করা।
কেন এটা জানা জরুরি?
এই কোর্সের প্রতিটা টপিক আসলে উপরের কোনো না কোনো ধাপ নিয়ে:
- Load Balancer কীভাবে কাজ করে?
- Cache কীভাবে system দ্রুত করে?
- Database কীভাবে বড় হলে ভাগ করা হয় (sharding)?
পুরো ছবিটা মাথায় থাকলে প্রতিটা টপিক সহজ মনে হবে। এখন চলো মৌলিক ধারণাগুলোতে ঢুকি — শুরু করব Scalability দিয়ে।
মিনি কুইজ
1. Client আর Server-এর সম্পর্কটা কেমন?
2. DNS-এর কাজ কী?