Web hoạt động thế nào? Hành trình 200ms từ gõ URL tới thấy trang

Khi bạn gõ địa chỉ web, 5 bước xảy ra trong khoảng 200 mili-giây giữa trình duyệt, DNS và máy chủ — hiểu được 5 bước này giúp bạn biết web chậm vì lý do gì.

8 phút đọcCập nhật 2026-05-18
Đang tải audio...
Mục lục bài viết(12)
Trình duyệt Safari hiển thị trang web Wikipedia — minh hoạ cho khái niệm trình duyệt là cửa sổ ra Internet

Trình duyệt là phần mềm bạn dùng hàng ngày để xem web — Safari, Chrome, Firefox, Edge. Mọi thứ trong ảnh này (header, menu, nội dung, ảnh) là kết quả của chuỗi 5 bước mà bạn sắp đọc, xảy ra trong khoảng 200 mili-giây. Nguồn: Wikimedia Commons (CC BY-SA 3.0 / public domain).

Hiểu đơn giản nhất

Khi bạn mở một trang web, năm "nhân vật" hoạt động cùng nhau:

Nhân vậtLà gìTrong câu chuyện gọi đồ ăn
Trình duyệtChrome / Safari / Firefox / EdgeApp giao đồ ăn trên điện thoại bạn
DNSHệ thống danh bạ tên miềnTổng đài tra cứu địa chỉ quán
InternetCáp + router toàn cầuTuyến đường shipper đi qua
Máy chủMáy tính chạy 24/7 ở data centerBếp của quán ăn
DatabaseKho lưu dữ liệu của trangTủ lạnh nguyên liệu của bếp

Mỗi lần bạn gõ một URL, năm nhân vật này phối hợp trong khoảng 200 mili-giây để giao "món ăn" (trang web) tới bạn.

Tại sao bạn cần biết

  • Phân biệt được lỗi của ai khi web sập. Cloudflare hiện 502 = lỗi server gốc. Trình duyệt hiện "DNS_PROBE_FINISHED" = lỗi DNS. "Connection timeout" = lỗi mạng. Mỗi loại có cách xử lý khác.
  • Hiểu tại sao web chậm. Mạng nhanh không cứu được khi server bận, DNS lỗi hay trang quá nặng JavaScript. Biết nguyên nhân giúp bạn yêu cầu fix đúng chỗ.
  • Biết khi nào cần CDN, cache, hosting tốt hơn. Mỗi tối ưu nhằm vào 1 bước cụ thể trong chuỗi. Không hiểu chuỗi thì không biết tối ưu cái nào trước.
  • Tự tin nói chuyện với agency và dev. Khi họ nói "page load TTFB cao", "DNS chưa propagate", "phải warm cache" — bạn biết họ đang đề cập tới bước nào.

5 bước khi mở một trang web

Hãy theo dõi điều xảy ra khi bạn gõ wiki.vietcodex.com và bấm Enter.

Bước 1: Trình duyệt cần biết server ở đâu

Trình duyệt là phần mềm trên máy bạn — Chrome, Safari, Firefox, Edge, Brave. Khi bạn gõ một URL, trình duyệt KHÔNG biết máy chủ của trang đó nằm ở đâu.

Nó chỉ biết tên: wiki.vietcodex.com. Cần dịch tên thành địa chỉ IP (104.21.96.235) thì mới gửi yêu cầu được. Đây là việc của DNS.

Bước 2: Hỏi DNS để dịch tên miền thành IP

DNS là hệ thống danh bạ của Internet. Trình duyệt hỏi từng tầng cho tới khi có câu trả lời:

  1. DNS cache trên máy bạncache (bộ đệm lưu tạm để tăng tốc). Nếu vừa truy cập domain này, có sẵn trong RAM, trả lời tức thì (0ms).
  2. DNS resolver nhà mạng — Viettel, FPT, VNPT có server DNS riêng. Hỏi họ trước khi đi xa hơn (5-20ms).
  3. Root DNS → TLD .com DNS → Authoritative DNS của vietcodex.com — chuỗi này chỉ chạy khi cache hết hạn (30-100ms).

Câu trả lời: wiki.vietcodex.com → 104.21.96.235. Trình duyệt nhớ lại trong vài phút để lần sau hỏi đỡ tốn thời gian.

Sơ đồ DNS lookup — trình duyệt hỏi DNS resolver, resolver hỏi Root DNS, TLD DNS, rồi Authoritative DNS để có địa chỉ IP

Sơ đồ DNS lookup tuần tự: trình duyệt hỏi DNS resolver (nhà mạng), resolver hỏi tiếp Root DNS → TLD DNS (.com, .vn) → Authoritative DNS (vietcodex.com) cho đến khi có IP cuối cùng. Mỗi mũi tên là một packet trao đổi, tổng cộng vài chục mili-giây nếu chưa cache. Nguồn: Wikimedia Commons (public domain).

Bước 3: Mở kết nối an toàn tới máy chủ (TCP + HTTPS)

Có IP rồi, trình duyệt gửi yêu cầu. Nhưng trước đó cần "bắt tay" với server qua hai cú handshake:

  • TCP handshake (3 packet trao đổi) — TCP (Transmission Control Protocol — giao thức truyền tin cậy). Đảm bảo cả hai bên sẵn sàng nhận dữ liệu.
  • TLS handshake (HTTPS) — TLS (Transport Layer Security — phiên bản mới của SSL). HTTPS (giao thức web có mã hoá). Trao đổi khoá mã hoá để dữ liệu không bị đọc lén giữa đường.

Tổng cộng khoảng 50-150ms cho 2 bước này. Khi handshake xong, biểu tượng ổ khoá trên thanh địa chỉ chuyển sang đóng — báo hiệu kết nối an toàn.

Thanh địa chỉ trình duyệt Firefox hiển thị biểu tượng ổ khoá khi truy cập trang HTTPS

Biểu tượng ổ khoá bên trái URL là dấu hiệu HTTPS đã thiết lập an toàn — dữ liệu giữa trình duyệt và server được mã hoá, không ai giữa đường (nhà mạng, hacker Wifi công cộng) đọc trộm được. Nguồn: Wikimedia Commons (CC BY-SA 4.0).

Bước 4: Máy chủ xử lý yêu cầu và trả về HTML

Máy chủ nhận được yêu cầu GET /co-ban/web-hoat-dong-the-nao. Nó:

  1. Đọc cấu hình route — file MDX nào ứng với URL này
  2. Đọc file MDX + database (lấy danh sách bài liên quan, sidebar...)
  3. Dựng HTML cuối cùng từ template + dữ liệu
  4. Gửi HTML về cho trình duyệt

Thời gian này gọi là TTFB (Time To First Byte) — thường 100-500ms tuỳ độ phức tạp và tải server. Trang web nào TTFB > 1 giây là dấu hiệu server đang chậm.

Bước 5: Trình duyệt "vẽ" trang web ra màn hình

Trình duyệt nhận HTML và bắt đầu render:

  1. Parse HTML thành cây DOM (Document Object Model)
  2. Tải CSS và áp dụng style cho cây DOM
  3. Tải JavaScript và chạy code
  4. Tải ảnh, font, video song song
  5. Vẽ pixels lên màn hình

Đây là bước có thể chậm nhất nếu trang có nhiều ảnh nặng hoặc JavaScript phức tạp. Tổng thời gian từ Bước 1 đến đủ pixel để bạn đọc được gọi là LCP (Largest Contentful Paint) — Google đo chỉ số này để đánh giá tốc độ trang.

Sơ đồ DOM tree — Document Object Model dưới dạng cây các phần tử HTML lồng nhau

Cây DOM — cấu trúc bên trong mà trình duyệt tạo ra từ HTML. Mỗi node là một phần tử (html, head, body, div, p...). CSS áp dụng style theo cây này, JavaScript đọc và sửa cây này, render engine vẽ pixel theo cây này. Mọi tương tác bạn thấy trên web đều là thao tác trên DOM. Nguồn: Wikimedia Commons (CC BY-SA 3.0).

Ví dụ thực tế

Khi bạn truy cập https://wiki.vietcodex.com/co-ban/web-hoat-dong-the-nao lần đầu trên 4G ở Việt Nam, đây là phân bố thời gian điển hình:

BướcThời gian
DNS lookup (lần đầu)40-80ms
TCP + TLS handshake80-150ms
TTFB (server xử lý + trả HTML)150-300ms
Tải CSS + JS + font (parallel)200-500ms
Render + tải ảnh lazy100-300ms
Tổng600-1300ms

Lần thứ hai bạn truy cập, DNS đã cache + một số tài nguyên đã cache → còn 200-400ms.

Cái gì có thể sai ở mỗi bước

BướcLỗi điển hìnhCách xử lý
1. Gõ URLSai chính tảDùng bookmark hoặc search trên Google
2. DNSDNS nhà mạng chậm/lỗiĐổi DNS thiết bị sang 1.1.1.1 (Cloudflare) hoặc 8.8.8.8 (Google)
3. TCP/TLSChứng chỉ SSL hết hạnBáo cho chủ trang web — họ phải gia hạn
4. ServerTTFB cao, 500, 502, 503Nâng cấp hosting (lưu trữ), thêm cache (Redis), dùng CDN (Content Delivery Network — mạng phân phối nội dung)
5. RenderẢnh quá nặng, JS chặnLazy load ảnh, gộp file JS, dùng AVIF/WebP

Mỗi loại lỗi có "chữ ký" riêng trên thanh URL hoặc trong DevTools — và biết nó ở bước nào giúp bạn yêu cầu fix đúng chỗ thay vì "web sập, mạng lỗi gì đó".

Tóm tắt 1 dòng

Mở một trang web là chuỗi 5 bước: tra DNS (bước 2) → bắt tay an toàn TCP/TLS (bước 3) → server xử lý và trả HTML (bước 4) → trình duyệt vẽ pixels (bước 5). Mỗi bước có thể chậm hoặc lỗi riêng — biết bước nào giúp bạn fix đúng chỗ.

Đọc tiếp

Câu hỏi thường gặp

Tại sao một trang web đôi khi load nhanh, đôi khi load chậm dù mạng vẫn ổn?
Vì web load là chuỗi 5 bước có thể chậm ở bất kỳ bước nào. Thường nhất: DNS chậm (đổi DNS sang 1.1.1.1 hoặc 8.8.8.8 giúp), server bận (nhiều người cùng truy cập), hoặc trang có quá nhiều ảnh/JavaScript cần tải thêm. Mạng nhanh chỉ giúp bước truyền dữ liệu, không giúp các bước khác.
Đổi DNS sang 1.1.1.1 hoặc 8.8.8.8 có thực sự giúp web nhanh hơn không?
Có, nhưng chỉ trong vài chục mili-giây cho mỗi domain mới. Nếu bạn truy cập 1 domain liên tục, DNS đã cache, đổi không khác biệt. Khác biệt thấy rõ khi bạn duyệt nhiều trang web khác nhau hoặc DNS nhà mạng đang lỗi.
Trình duyệt nào nhanh nhất hiện nay?
Trên hầu hết máy tính, Chrome, Edge, Brave và Firefox có tốc độ render gần ngang nhau (đều dựa trên engine Chromium hoặc Gecko). Khác biệt thực sự đến từ extension bạn cài và số tab đang mở, không phải bản thân trình duyệt. Trên macOS, Safari thường tiết kiệm pin nhất.
Tại sao đôi khi web hiện lỗi 'Bad Gateway 502' hay '503 Service Unavailable'?
502 nghĩa là proxy/CDN (như Cloudflare) đến được nhưng máy chủ gốc không trả lời — thường do server crash hoặc tắt. 503 nghĩa là server đang quá tải hoặc bảo trì. Cả hai đều là lỗi phía server, không phải lỗi của bạn — chờ vài phút rồi truy cập lại.
HTTP và HTTPS khác nhau ở đâu?
HTTPS là HTTP cộng thêm lớp mã hoá TLS. Dữ liệu truyền qua HTTPS được mã hoá nên không ai giữa đường (nhà mạng, hacker Wifi công cộng) đọc trộm được. Từ 2018, Google Chrome đánh dấu mọi trang HTTP là 'Not Secure'. Mọi trang web hiện đại bắt buộc dùng HTTPS.
Server và hosting có phải là một?
Gần giống. 'Server' là máy tính chạy phần mềm phục vụ web. 'Hosting' là dịch vụ thuê server từ công ty khác (Vercel, AWS, Hostinger, Tenten...). Khi bạn 'mua hosting', bạn đang thuê chỗ trên server của họ để chạy web.
Tại sao web load chậm chỉ trên điện thoại nhưng nhanh trên máy tính?
Ba lý do thường gặp: kết nối 4G/5G chậm hơn Wifi gia đình; CPU điện thoại yếu hơn nên parse HTML/JavaScript chậm; nhiều ảnh/JS load không tối ưu cho mobile. Test trực tiếp tại Google PageSpeed Insights chế độ mobile để biết bài cụ thể.