Browser-এ একটি Website Visit করলে Behind the Scenes কী ঘটে?
Browser-এ একটি Website Open করার পর Behind the Scenes কী কী ঘটে—DNS Lookup, ARP, TCP Handshake, TLS, HTTP Request, Rendering এবং আরও অনেক কিছু সহজ ভাষায় জানুন।
Browser-এ একটি Website Visit করলে Behind the Scenes কী ঘটে?
প্রতিদিন আমরা Browser-এ একটি Website-এর Address লিখে Enter চাপি। কয়েক মিলিসেকেন্ডের মধ্যেই Website আমাদের সামনে চলে আসে।
কিন্তু কখনো কি ভেবে দেখেছেন, এই অল্প সময়ের মধ্যে Browser-এর ভিতরে আসলে কী কী ঘটে?
আজ আমি খুব সহজ ভাষায় পুরো Journey-টা ব্যাখ্যা করার চেষ্টা করবো।
Note: এখানে আমি পুরো Process-এর একটি High-level Overview দিচ্ছি। বাস্তবে এর চেয়েও অনেক বেশি Step রয়েছে।
১. Browser প্রথমে HSTS List Check করে
ধরুন আমি Browser-এ লিখলাম—
example.com
Browser প্রথমেই তার HSTS (HTTP Strict Transport Security) List-এ Check করে এই Domain আগে থেকেই HTTPS বাধ্যতামূলক (Force HTTPS) হিসেবে সংরক্ষিত আছে কিনা।
যদি Domain HSTS List-এ থাকে, তাহলে Browser সরাসরি HTTPS ব্যবহার করবে।
যদি না থাকে, তাহলে Browser প্রথমে HTTP দিয়ে চেষ্টা করতে পারে এবং পরবর্তীতে Server যদি HSTS Policy পাঠায়, তাহলে ভবিষ্যতে Browser শুধুমাত্র HTTPS-ই ব্যবহার করবে।
২. Browser Cache Check করে
এরপর Browser নিজের Cache-এ Check করে—
- এই Domain-এর IP আগে থেকেই জানা আছে কি?
- DNS Record Cache-এ আছে কি?
যদি Cache-এ তথ্য থাকে, তাহলে নতুন করে DNS Query করার প্রয়োজন হয় না।
৩. DNS Lookup শুরু হয়
যদি Browser Cache-এ কোনো তথ্য না পায়, তাহলে Operating System-এর মাধ্যমে gethostbyname() (বা আধুনিক Resolver API) ব্যবহার করে DNS Lookup শুরু হয়।
প্রথমে Local Machine-এর Hosts File Check করা হয়।
যদি সেখানে Domain পাওয়া যায়, তাহলে DNS Server-এর কাছে যাওয়ার দরকার হয় না।
৪. DNS Server-এ Query যায়
Hosts File-এ কিছু না পেলে Request যায় Configure করা DNS Resolver-এর কাছে।
সাধারণত এটি হতে পারে—
- Local Router
- ISP-এর DNS Server
- অথবা Public DNS যেমন Google DNS বা Cloudflare DNS
DNS Query সাধারণত UDP Port 53 ব্যবহার করে পাঠানো হয় (প্রয়োজনে TCP-ও ব্যবহার হতে পারে)।
৫. ARP (Address Resolution Protocol)
যদি DNS Server একই Local Network-এ থাকে, তাহলে Computer প্রথমে ARP ব্যবহার করে DNS Server-এর MAC Address বের করে।
ARP-এর কাজ হলো—
IP Address → MAC Address Mapping করা।
যদি DNS Server Local Network-এর বাইরে থাকে, তাহলে Request প্রথমে Default Gateway (Router)-এর কাছে যায়।
ARP-এরও নিজস্ব Cache থাকে, তাই প্রতিবার নতুন করে Lookup করতে হয় না।
৬. Recursive DNS Lookup
যদি Local DNS Server-এর কাছে Domain-এর Record না থাকে, তাহলে সে Recursive Lookup শুরু করে।
সাধারণত Query এই Hierarchy Follow করে—
Local DNS Resolver
│
▼
Root DNS Server
│
▼
TLD Server (.com, .org)
│
▼
Authoritative Name Server
শেষ পর্যন্ত Domain-এর Authoritative Name Server থেকে সঠিক তথ্য নিয়ে আসে।
৭. SOA এবং DNS Record
Authoritative Name Server-এর কাছে পৌঁছানোর পর Domain সম্পর্কিত বিভিন্ন DNS Record পাওয়া যায়।
এর মধ্যে গুরুত্বপূর্ণ হলো—
- SOA (Start of Authority)
- NS Record
- A Record
- AAAA Record
- CNAME
- MX
- TXT
SOA Record-এর মধ্যে সাধারণত থাকে—
- Primary Name Server
- Refresh Time
- Retry Time
- Expire Time
- TTL (Time To Live)
৮. A Record থেকে IP Address পাওয়া
ধরুন Domain-এর Nameserver হলো—
ns1.digitalocean.com
এই Nameserver Domain-এর A Record Return করবে।
উদাহরণ—
example.com → 185.199.109.153
অর্থাৎ Domain Name-এর সাথে Server-এর IP Address Map করা হলো।
এই পুরো DNS Lookup সাধারণত ২০–৫০ মিলিসেকেন্ড-এর মধ্যেই সম্পন্ন হয়ে যায়।
৯. TCP Connection তৈরি হয়
এখন Browser জানে Server-এর IP Address।
এরপর Browser এবং Server-এর মধ্যে একটি TCP Connection তৈরি হয়।
এটি সাধারণত Three-way Handshake ব্যবহার করে সম্পন্ন হয়—
- SYN
- SYN-ACK
- ACK
TCP Connection প্রতিষ্ঠিত হওয়ার পর Data আদান-প্রদান শুরু হয়।
১০. TLS Handshake (HTTPS হলে)
যদি Website HTTPS ব্যবহার করে, তাহলে TCP Connection-এর পর TLS Handshake শুরু হয়।
এই ধাপে—
- Certificate Verify করা হয়।
- Encryption Algorithm নির্বাচন করা হয়।
- Session Key তৈরি হয়।
- Secure Connection Establish হয়।
এর ফলে Client এবং Server-এর মধ্যে Data Encrypted অবস্থায় আদান-প্রদান হয়।
১১. HTTP Request পাঠানো হয়
এখন Browser Server-এ HTTP Request পাঠায়।
উদাহরণ—
GET / HTTP/1.1
Host: example.com
Server Request Receive করে Processing শুরু করে।
১২. Reverse Proxy, Load Balancer বা API Gateway
অনেক Production Application-এ Request সরাসরি Application Server-এ যায় না।
প্রথমে যেতে পারে—
- Reverse Proxy
- Load Balancer
- API Gateway
এরপর Request সঠিক Backend Server বা Microservice-এ Forward করা হয়।
১৩. Server Response পাঠায়
Server Processing শেষ করে Response পাঠায়।
Response-এর মধ্যে থাকতে পারে—
- HTML
- CSS
- JavaScript
- JSON
- Image
- Video
Response সাধারণত একবারে আসে না।
TCP Stream-এর মাধ্যমে ছোট ছোট Packet আকারে Browser-এ পৌঁছায়।
১৪. Browser HTML Parse করে
Browser HTML Parse করে একটি DOM (Document Object Model) তৈরি করে।
একই সময়ে—
- CSS Parse হয়।
- CSSOM তৈরি হয়।
- JavaScript Download হয়।
- JavaScript Execute হয়।
এরপর Browser Render Tree তৈরি করে।
১৫. Rendering এবং Painting
সবশেষে Browser—
- Layout Calculate করে।
- Rendering সম্পন্ন করে।
- প্রতিটি Pixel-এর Color নির্ধারণ করে।
- GPU এবং Display Driver-এর মাধ্যমে আপনার Monitor বা Mobile Screen-এ UI প্রদর্শন করে।
এভাবেই আপনি Website দেখতে পান।
পুরো Flow এক নজরে
User
│
▼
Browser
│
▼
HSTS Check
│
▼
Browser Cache
│
▼
Hosts File
│
▼
DNS Lookup
│
▼
IP Address
│
▼
TCP Handshake
│
▼
TLS Handshake
│
▼
HTTP Request
│
▼
Reverse Proxy / Load Balancer / API Gateway
│
▼
Application Server
│
▼
Database
│
▼
HTTP Response
│
▼
Browser Rendering
│
▼
Website Display
উপসংহার
আমরা যখন Browser-এ একটি Website-এর Address লিখে Enter চাপি, তখন কয়েক মিলিসেকেন্ডের মধ্যে অসংখ্য Process সম্পন্ন হয়। HSTS Check, DNS Lookup, ARP, TCP Handshake, TLS Encryption, HTTP Communication, Server Processing এবং Browser Rendering—সবকিছু মিলিয়েই একটি Website আমাদের সামনে দৃশ্যমান হয়।
এখানে আমি পুরো Process-এর শুধু একটি সংক্ষিপ্ত Overview তুলে ধরেছি। বাস্তবে এর মধ্যে আরও অনেক গুরুত্বপূর্ণ বিষয় রয়েছে, যেমন Packet Routing, Congestion Control, HTTP/2, HTTP/3 (QUIC), Caching Strategy, CDN, Browser Rendering Engine, JavaScript Event Loop, Service Worker এবং আরও অনেক কিছু।
এত জটিল Process হওয়া সত্ত্বেও, এই সবকিছুই সাধারণত কয়েক মিলিসেকেন্ডের মধ্যেই সম্পন্ন হয়। আধুনিক Web-এর সবচেয়ে বিস্ময়কর দিকগুলোর একটি হলো এই অসাধারণ গতি এবং দক্ষতা।