Module 1 — Từ URL đến Response: tổng quan
Module mở đầu dựng bản đồ tinh thần cho cả khoá: một HTTP request đi qua 5 chặng nào, và mô hình TCP/IP 4 tầng gói gọn bức tranh đó ra sao. Học xong bạn trace được vòng đời request và biết một sự cố đang kẹt ở chặng nào.
TL;DR: Trước khi đào sâu DNS, TCP hay HTTP ở các module sau, bạn cần một bản đồ tổng thể: khi gõ một URL và nhấn Enter, dữ liệu đi qua 5 chặng nối tiếp (DNS → TCP → TLS → HTTP → render) trên nhiều máy. Module 1 dựng bản đồ đó qua hai bài — một bài đi theo dòng thời gian của request, một bài hệ thống hoá thành mô hình TCP/IP 4 tầng. Mục tiêu không phải nhớ chi tiết từng giao thức, mà là có khung tư duy để biết chặng nào đang hỏng khi debug, và để mọi kiến thức sâu về sau có chỗ bám.
Vì sao module này tồn tại
Hầu hết developer gọi API mỗi ngày nhưng nếu được hỏi "giữa lúc nhấn Enter và lúc trang hiện ra, điều gì thực sự xảy ra?" thì câu trả lời thường dừng ở "trình duyệt gửi request tới server". Đúng, nhưng thiếu mất phần lớn câu chuyện — và chính phần đó là nơi sinh ra những lỗi production khó chịu nhất: trang chậm 3 giây không rõ lý do, ECONNRESET lúc nửa đêm, cert hết hạn, DNS chưa kịp lan.
Module này không dạy bạn cấu hình router hay học thuộc 7 tầng OSI. Nó dựng một bản đồ tư duy: request đi qua những trạm nào, mỗi trạm giải quyết bài toán gì, và khi có sự cố thì nhìn vào đâu. Có bản đồ rồi, các module sau (DNS, TCP, HTTP, TLS) chỉ là phóng to từng trạm.
Đây là bản đồ đó — 5 chặng nối tiếp của một request:
flowchart LR
U["Go URL<br/>+ Enter"] --> D["DNS<br/>ten -> IP"]
D --> T["TCP<br/>bat tay"]
T --> S["TLS<br/>ma hoa"]
S --> H["HTTP<br/>req / res"]
H --> R["Render<br/>ve trang"]Sau module này bạn sẽ
- Trace được vòng đời một HTTP request qua 5 chặng: DNS → TCP handshake → TLS → HTTP → render.
- Explain được vì sao mạng chia tầng và mô hình TCP/IP 4 tầng (Link, Internet, Transport, Application) — mỗi tầng đóng gói tầng trên thế nào.
- Diagnose sơ bộ một sự cố bằng cách xác định request đang kẹt ở chặng nào, rồi chọn đúng công cụ cho chặng đó.
Lộ trình module
Hai bài chính bổ sung cho nhau theo hai góc nhìn:
-
Điều gì xảy ra khi gõ google.com — đi theo dòng thời gian của một request từ con số 0: phân giải tên miền, bắt tay TCP, thiết lập TLS, trao đổi HTTP, rồi render. Đây là bài xương sống, cho bạn cảm giác "phim quay chậm" của một lần load trang.
-
Mô hình TCP/IP 4 tầng — lùi lại một bước, hệ thống hoá dòng thời gian đó thành kiến trúc tầng. Cùng một request, nhưng giờ nhìn theo chiều dọc: dữ liệu của bạn được bọc dần qua từng tầng (encapsulation) trước khi rời máy, và bóc ngược lại ở máy nhận. Đây là khung khái niệm mà mọi tài liệu mạng đều dùng.
Bài tổng kết cuối module gom lại thành cheat sheet một trang để bạn bookmark.
Yêu cầu trước khi bắt đầu
- Biết dùng terminal cơ bản (chạy được một lệnh, đọc output).
- Đã từng gọi một API hoặc mở một trang web (ai cũng có rồi).
- Không cần biết trước về mạng — module này là điểm bắt đầu.
Một số bài có lệnh dig, curl, ss để bạn chạy thử. Trên macOS/Linux chúng có sẵn; trên Windows dùng WSL hoặc Git Bash.
Time budget
| Bài | Thời lượng |
|---|---|
| Tổng quan (bài này) | ~10 phút |
| Điều gì xảy ra khi gõ google.com | ~22 phút |
| Mô hình TCP/IP 4 tầng | ~18 phút |
| Tổng kết & cheat sheet | ~12 phút |
| Tổng module | ~1 giờ |
Cách học module này hiệu quả
- Chạy thử mọi lệnh. Đọc về
curl -vkhông bằng gõ nó một lần và nhìn từng chặng hiện ra. Mở terminal song song khi học. - Bám bản đồ 5 chặng. Mỗi khi gặp khái niệm mới ở module sau, tự hỏi "cái này thuộc chặng nào?". Khung tư duy quan trọng hơn chi tiết.
- Đừng cố nhớ hết. Mục tiêu module 1 là nhận diện các chặng, không phải thuộc lòng. Chi tiết từng chặng sẽ lặp lại nhiều lần ở các module sau.
Bài tiếp theo: Điều gì xảy ra khi bạn gõ google.com và nhấn Enter?
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên