DNS & HTTP/2, HTTP/3 (QUIC)
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 Mục tiêu bài học
Web ngày nay nhanh không chỉ nhờ cáp quang, mà nhờ HTTP/2 và HTTP/3.
1. DNS (Domain Name System) Internals
Đệ quy (Recursion) vs Tuần tự (Iterative):
- Recursion (Lười biếng): Bạn hỏi Resolver (8.8.8.8), nó tự đi hỏi các nơi rồi trả kết quả cuối cùng cho bạn. (PC dùng cách này).
- Iterative (Siêng năng): Bạn hỏi Root, Root bảo "Tao không biết, hỏi thằng .com đi". Bạn lại đi hỏi .com. (Resolver server dùng cách này).
2. Sự tiến hóa của HTTP
HTTP/1.1 (1997) - Cũ kỹ
- Dạng văn bản (Clear text headers).
- Head-of-Line Blocking: Mỗi kết nối chỉ xử lý 1 request tại 1 thời điểm. Tải 100 ảnh phải mở 6 kết nối song song (Browser limit). Rất chậm.
HTTP/2 (2015) - Đột phá
- Binary Base: Nhị phân hóa Header (Hpack) -> Nhẹ hơn.
- Multiplexing (Đa đường): 1 kết nối TCP duy nhất tải song song 100 ảnh cùng lúc. Không bị chặn hàng.
- Server Push: Client chưa hỏi file CSS, Server đã "nhét" sẵn vào tay: "Cầm lấy, tí nữa thể nào mày cũng cần".
👉 Vẫn còn điểm yếu: Chạy trên TCP. Nếu mất 1 gói tin TCP, cả 100 stream đều phải dừng lại chờ (TCP Head-of-Line Blocking).
HTTP/3 (QUIC) - Tương lai
- Chạy trên UDP! (Bỏ qua TCP Handshake rườm rà).
- QUIC: Tự implement cơ chế tin cậy, tắc nghẽn ở tầng Application (User-space).
- Nếu mất gói của Stream A, Stream B vẫn chạy bình thường. Giảm độ trễ cực tốt cho mạng Wifi/4G chập chờn.
📝 Lab 13: Telnet HTTP Manually
Tự làm trình duyệt bằng tay.
telnet google.com 80
GET / HTTP/1.1
Host: google.com
(Enter 2 lần)
Server sẽ trả về mã HTML loằng ngoằng. Đây là cách Browser nói chuyện with Server.
🔥 Interview Q&A
Q: Tại sao HTTP/3 dùng UDP dù UDP không tin cậy?
A: UDP chỉ là cái vỏ. Giao thức QUIC bên trong nó tự xây dựng cơ chế đánh số thứ tự (Sequence Number) và truyền lại (Retransmission) xịn hơn cả TCP, nhưng không bị ràng buộc bởi hệ điều hành (Kernel). Nó giúp thiết lập kết nối (0-RTT) nhanh hơn hẳn.
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense