All posts
How Does an HTTP Request Travel Across the Internet?
networking

How Does an HTTP Request Travel Across the Internet?

Dung Tran H.'s avatarDung Tran H.
Table of Contents10 sections

Mỗi ngày, chúng ta mở hàng chục trang web mà không cần nghĩ ngợi. Chỉ cần gõ google.com và nhấn Enter, mọi thứ gần như xuất hiện ngay lập tức. Nhưng request của bạn đã đi đâu, gặp những gì và bằng cách nào để mang trang web trở về trình duyệt?


Tổng quan

Mỗi ngày bạn gõ URL vào trình duyệt hàng chục lần. Nhưng thực ra điều gì xảy ra phía sau? Dữ liệu đi qua đâu? Ai giúp nó tìm đúng server?

📌 Lưu ý: Trong suốt hành trình này, mọi packet đều phải đi qua hạ tầng mạng.

  • Trong mạng nội bộ (LAN), packet thường đi qua Switch (hoặc Access Point nếu dùng Wi-Fi) để đến Router (Default Gateway).

  • Router thực hiện NAT (nếu cần), sau đó chuyển packet ra Internet.

  • Trên Internet, packet tiếp tục đi qua nhiều router trung gian trước khi đến đích.

Nói cách khác, dù là DNS Query, TCP Handshake hay HTTP Request, tất cả đều đi qua cùng một hạ tầng mạng.


Switch và Router

Trước khi đi vào từng bước, cần hiểu rõ hai thiết bị mà dữ liệu phải đi qua ngay từ đầu.

Switch (Layer 2 — Data Link)

Switch hoạt động trong mạng nội bộ (LAN). Khi máy bạn gửi dữ liệu, Switch tra bảng MAC để biết chuyển frame đến đúng cổng nào.

📍 Ví dụ: switch trong văn phòng nối tất cả máy tính lại với nhau.

Router (Layer 3 — Network)

Router kết nối các mạng khác nhau và định tuyến packet qua IP address.

📍 NAT là gì? Máy bạn thường có địa chỉ IP nội bộ như 192.168.1.5, nhưng địa chỉ này không thể định tuyến trực tiếp trên Internet. Khi gửi dữ liệu ra ngoài, router sẽ thay địa chỉ IP nguồn bằng IP public của mạng. Khi phản hồi quay về, router sẽ chuyển tiếp dữ liệu trở lại đúng thiết bị trong mạng nội bộ. Nhờ NAT, nhiều thiết bị trong cùng một mạng có thể dùng chung một IP public để truy cập Internet.


Bước 1 : DNS: Dịch tên miền thành địa chỉ IP

Máy tính không hiểu tên miền như google.com hay example.com. Thay vào đó, mọi kết nối trên Internet đều sử dụng địa chỉ IP (ví dụ 142.250.x.x hoặc 93.184.216.34). DNS (Domain Name System) đóng vai trò như "danh bạ" của Internet, giúp chuyển đổi tên miền mà con người dễ nhớ thành địa chỉ IP mà máy tính có thể sử dụng.

💡 DNS Query cũng là một packet mạng. Khi trình duyệt cần tra cứu địa chỉ IP của một tên miền, packet DNS sẽ đi qua Switch (LAN)Router (Default Gateway)Internet để đến DNS Resolver. Sau khi tìm được địa chỉ IP, kết quả sẽ được trả ngược về trình duyệt theo cùng nguyên tắc định tuyến.

Thứ tự tra cứu

Trình duyệt không gửi yêu cầu đến DNS Resolver ngay lập tức mà sẽ kiểm tra theo thứ tự từ nhanh đến chậm:

(1) Browser cache      → Trình duyệt đã lưu IP của domain chưa?
(2) OS cache           → /etc/hosts hoặc DNS cache của hệ điều hành
(3) DNS Resolver       → ISP hoặc Public DNS (8.8.8.8, 1.1.1.1...)

(A) Root Nameserver    → "Ai quản lý .com?"
(B) TLD Nameserver     → "Ai quản lý example.com?"
(C) Authoritative NS   → "example.com = 93.184.216.34"
(D) DNS Resolver trả IP về trình duyệt ✓

⏱️ Bao lâu? Nếu có cache, gần như tức thì. Nếu phải truy vấn DNS từ đầu, thời gian có thể dao động từ vài chục đến vài trăm mili giây, tùy điều kiện mạng


Bước 2: Packet: Dữ liệu được đóng gói thành "phong bì"

Dữ liệu không được gửi nguyên khối. Nó được cắt nhỏ thành các packet, mỗi packet có nhiều lớp header chứa thông tin định tuyến.

Hãy hình dung packet như một bưu phẩm nhiều lớp:

Layer

Header

Chứa gì

Network (IP)

IP Header

Địa chỉ nguồn & đích

Transport (TCP)

TCP Header

Số thứ tự, port, ACK

Security (TLS)

TLS Record

Nội dung đã mã hoá

Application (HTTP)

HTTP Data

GET request / response

💡 Nếu một packet bị mất trên đường, chỉ cần gửi lại packet đó — không cần gửi lại toàn bộ. Và nhiều packet có thể đi theo các đường khác nhau rồi được ghép lại ở đích.


Bước 3: IP Routing: Packet tìm đường qua Internet

Sau khi biết địa chỉ IP của server, browser bắt đầu gửi packet đến đích.

Packet trước tiên được chuyển đến Router (Default Gateway) trong mạng nội bộ. Router sẽ thực hiện NAT (nếu cần), sau đó chuyển packet ra Internet. Từ đây, packet đi qua nhiều router trung gian và tại mỗi router, thiết bị sẽ dựa trên Routing Table để chọn next hop (điểm chuyển tiếp tiếp theo).

y bạn (192.168.1.5)
        │
Switch (LAN)
        │
Router (Default Gateway)
        │
ISP Router
        │
Web Server (93.184.216.34)

Ở quy mô Internet, các ISP và mạng lớn sử dụng BGP (Border Gateway Protocol) để trao đổi thông tin định tuyến giữa các mạng (Autonomous Systems), giúp packet tìm được đường đi đến đúng máy chủ.

🌐 Bạn có thể dùng traceroute google.com để quan sát packet đi qua những router nào trên đường đến đích. Đường đi và số lượng hop có thể thay đổi tùy ISP, vị trí địa lý và tình trạng mạng.


Bước 4: TCP Handshake → HTTP Request → Response

Sau khi biết IP server, trình duyệt mở kết nối TCP và gửi request thực sự.

🔒 HTTPS = HTTP + TLS. Toàn bộ nội dung được mã hoá AES-256. Dù ai đó ngồi giữa đường mạng cũng không đọc được.


Lời kết

Mỗi lần bạn gõ một URL và nhấn Enter, phía sau là cả một hành trình mà người dùng hiếm khi nhìn thấy. DNS tìm địa chỉ, router chọn đường đi, TCP đảm bảo dữ liệu đến đúng thứ tự và TLS bảo vệ mọi thông tin trên đường truyền. Chỉ trong vài trăm mili giây, hàng chục bước xử lý đã phối hợp nhịp nhàng để đưa trang web xuất hiện trước mắt bạn. Đó chính là điều khiến Internet trở thành một trong những hệ thống kỹ thuật ấn tượng nhất: phức tạp ở bên trong, nhưng đơn giản trong trải nghiệm của người dùng.

Tham khảo:

https://www.cloudflare.com/learning/network-layer/how-does-the-internet-work