Ravindra Bagale · AWSसर्व coursesया course चे lessonsशोधाEnglish

AWS · मराठी आवृत्ती

2.4 Browser मध्ये website उघडल्यावर काय होतं?

रवींद्र बागले यांच्या course वर आधारित · सहज मराठीत explanation

या page मध्ये

https://www.example.com लिहून Enter दाबलं. आता सामान्य HTTPS-over-TCP उदाहरणात पुढचा प्रवास होतो. Cache, HTTP version आणि connection reuse मुळे प्रत्येक request मध्ये सर्व steps नव्याने होत नाहीत.

 You ──► Browser ──► DNS lookup ──► TCP handshake ──► TLS handshake ──► HTTP GET
                                                                             │
 Page shown ◄── Browser renders ◄── HTTP 200 + HTML/CSS/JS ◄── Web server ◄──┘
  1. URL parsing — L7: Scheme https, default port 443, host www.example.com आणि path / ओळखतो.
  2. DNS: Browser/OS caches, configured hosts आणि resolver मधून IP शोधतो. Resolver गरजेनुसार root → .com TLD → authoritative server कडे विचारतो. उदाहरण IP 93.184.215.14; actual value बदलू शकते. Resolver ISP, 8.8.8.8 किंवा EC2 VPC resolver 169.254.169.253 असू शकतो. पारंपरिक DNS UDP/TCP 53 वापरतो; encrypted DNS वेगळा असू शकतो.
  3. ARP — IPv4: पहिली frame router ला द्यायला default gateway चा MAC शोधतो. IPv6 मध्ये Neighbor Discovery वापरतात.
  4. TCP handshake — L4: Laptop उदा. ephemeral port 51544 निवडून server:443 कडे SYN; server SYN-ACK; laptop ACK पाठवतो.
  5. Routing — L3: Packets router, ISP आणि पुढच्या routers मधून destination IP वर पुढे जातात. Local NAT private source public मध्ये बदलू शकतो. Routing handshake packets साठीही आधीपासून होत असतं.
  6. TLS: Certificate verify होतं आणि encryption keys ठरतात.
  7. HTTP request: उदाहरण GET / HTTP/1.1, Host: www.example.com, cookies आणि headers.
  8. Server processing: SG 443 allow करतो; Nginx static file देतो किंवा Node/Flask/PHP app ला proxy करतो; गरजेनुसार app database विचारतो.
  9. Response: उदा. HTTP/1.1 200 OK आणि HTML. CSS/JS/images साठी पुढच्या requests जातात; connection पुन्हा वापरता येतो.
  10. Rendering: Browser DOM तयार करतो, CSS लावतो, JavaScript run करतो आणि page दाखवतो.
  11. Reuse/close: Connection पुढच्या requests साठी राहू शकतो किंवा FIN/ACK ने बंद होतो.

HTTP/3 मध्ये QUIC/UDP वापरलं जातं; वरचा TCP क्रम त्या version साठी तसाच लागू नाही.

Terminal मधून पाहूया

# Step 2: DNS lookup
dig +short www.example.com
nslookup www.example.com

# Step 5: path taken by packets (install traceroute if missing)
traceroute www.example.com

# Steps 4, 6, 7, 9 in detail (verbose curl)
curl -v https://www.example.com -o /dev/null

Troubleshooting checklist

Instance running? → Public IP आणि IGW route? → SG/NACL मध्ये योग्य traffic? → Service listening — ss -tlnp? → DNS योग्य? → App errors? Mauli Dairy कडून “website उघडत नाही” असा फोन आला तर अंदाजाने settings बदलण्याऐवजी प्रत्येक step तपासा.

Lab

dig +short www.example.com, traceroute www.example.com आणि curl -v https://www.example.com -o /dev/null run करा. Output मध्ये resolved IP, TCP connect, TLS handshake आणि HTTP status mark करा. Actual status नेहमी 200 असेलच असं नाही; जे दिसलं ते नोंदवा.