1. Giới thiệu
Bạn có bao giờ tự hỏi khi bạn gõ địa chỉ vào thanh trình duyệt của mình, thì điều gì xảy ra sau đó? Đây không chỉ là một câu hỏi đơn giản; nó bao gồm một quy trình phức tạp mà mỗi người dùng đều trải nghiệm mỗi khi truy cập vào một trang web. Trong bài viết này, chúng ta sẽ khám phá các bước mà một URL trải qua để hiện ra là một trang web thực tế, từ việc phân giải tên miền (DNS) đến việc trình duyệt nhận dữ liệu từ máy chủ web.
2. Một số thuật ngữ quan trọng
Để việc hiểu rõ hơn về quy trình này, chúng ta cần tìm hiểu về một số khái niệm cơ bản:
URL (Uniform Resource Locator): Địa chỉ duy nhất trên internet, chỉ dẫn đến một tài nguyên cụ thể như trang web, hình ảnh, hoặc video. URL bao gồm các thành phần như giao thức (protocol), tên miền (domain name), đường dẫn (path) và các tham số kèm theo.
DNS (Domain Name System): Hệ thống giúp chuyển đổi tên miền (ví dụ: example.com) thành địa chỉ IP tương ứng của máy chủ chứa tài nguyên.
HTTP và HTTPS: Hai giao thức chính cho phép trình duyệt giao tiếp với máy chủ. HTTPS đảm bảo an toàn hơn nhờ sự mã hóa thông tin qua SSL/TLS.
Máy chủ web (Web Server): Là phần mềm phục vụ yêu cầu từ trình duyệt, đáp ứng với các tài nguyên như HTML, CSS và JavaScript.
Trình duyệt web (Web Browser): Phần mềm hiển thị nội dung từ máy chủ và tương tác với người dùng.
TCP/IP: Bộ giao thức mạng cơ bản. HTTP Request là yêu cầu từ trình duyệt, và HTTP Response là phản hồi từ máy chủ.
3. Các bước truy cập một trang web
Khi bạn truy cập vào một trang web, quy trình diễn ra như sau:
3.1. Thực hiện phân giải tên miền
Khi bạn nhập URL vào trình duyệt, bước đầu tiên là tìm địa chỉ IP của tên miền. Trình duyệt sẽ xem xét các lớp cache để tìm kiếm DNS record theo thứ tự:
- Bộ nhớ đệm của trình duyệt (Browser cache)
- Bộ nhớ đệm của hệ điều hành (OS cache)
- Bộ nhớ đệm của router (Router cache)
- Bộ nhớ đệm của ISP (ISP cache)
Nếu không tìm thấy, trình duyệt sẽ gửi yêu cầu đến máy chủ DNS của nhà cung cấp dịch vụ Internet (ISP) để phân giải tên miền thành địa chỉ IP thông qua các tầng DNS cao xuống thấp.
3.2. Thiết lập kết nối TCP qua Three-Way Handshake
Khi đã có địa chỉ IP, trình duyệt sẽ thiết lập kết nối TCP với máy chủ thông qua quá trình ba bước:
- Gửi gói SYN để bắt đầu kết nối.
- Nhận gói SYN-ACK từ máy chủ.
- Gửi gói ACK để xác nhận kết nối.
3.3. Gửi yêu cầu HTTP/HTTPS
Sau khi thiết lập kết nối thành công, trình duyệt sẽ gửi yêu cầu HTTP hoặc HTTPS đến máy chủ để yêu cầu nội dung.
3.4. Máy chủ xử lý yêu cầu và trả về phản hồi
Máy chủ tiếp nhận và xử lý yêu cầu, có thể thực hiện truy vấn cơ sở dữ liệu hoặc chạy mã. Sau đó, máy chủ sẽ tạo ra phản hồi, thường là một file HTML, để gửi về cho trình duyệt.
3.5. Trình duyệt nhận phản hồi và hiển thị trang web
Cuối cùng, trình duyệt nhận phản hồi, phân tích và hiển thị nội dung trang web cho người dùng.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau khám phá quy trình mà một URL trảiqua để chuyển đổi thành một trang web thực tế trên trình duyệt. Từ việc phân giải tên miền đến thiết lập kết nối TCP và gửi yêu cầu HTTP, tất cả đều là những bước quan trọng giúp bạn hiểu rõ hơn về cơ chế hoạt động của internet.
Hi vọng bài viết mang lại cho bạn những kiến thức hữu ích và giúp bạn tự tin hơn khi đối mặt với các câu hỏi kỹ thuật liên quan đến kết nối mạng và trải nghiệm người dùng.
Hẹn gặp lại trong các bài viết sau!
Tài liệu tham khảo
- MDN Web Docs
- Pressidium Blog
- Programmer Interview
source: viblo