date
Aug 7, 2024
slug
luong-web-co-ban
status
Published
tags
Backend
summary
Luồng cơ bản hoạt động của 1 trang web
type
Post
notion image
 
(1) Bạn sử dụng trình duyệt để truy cập trang web thông qua tên miền, ví dụ như example.com. Tuy nhiên, việc này cũng giống như bạn biết tên của chủ nhà là Trần Minh Sáng, mà không biết cụ thể địa chỉ nhà ông ấy ở đâu để mà tìm vậy đó.
(2) Vì vậy, trình duyệt sẽ phải thông qua Hệ thống phân giải tên miền (Domain Name System hay DNS) để phân giải từ tên miền example.com đó thành địa chỉ IP, hay chính là "địa chỉ nhà" của ông ấy.
(3) Sau khi nhận được địa chỉ IP của trang web, trình duyệt sẽ kết nối đến web server đó và (4) hiển thị giao diện trang web cho bạn nhìn thấy.
(5) Mọi thao tác tiếp theo của bạn trên trang web, ví dụ như nhấn nút Like bài viết này của mình, sẽ đều được truyền đến web server thông qua API.
(6) Web server sẽ xử lý yêu cầu đó (dựa trên chương trình mà lập trình viên đã code). Nếu yêu cầu đó cần động đến việc thêm/sửa/xóa/lấy dữ liệu từ cơ sở dữ liệu (database) thì web server sẽ gọi (việc gọi sang này cũng là do lập trình viên code ở Backend) sang database để thực hiện những công việc xử lý dữ liệu đó. Trong dự án thực tế, database cũng thường được triển khai trên 1 server chung, và hạn chế quyền truy cập trực tiếp vào đó, để tránh việc các lập trình viên non kinh nghiệm, hoặc các team khác nhau trong cùng dự án sẽ làm hỏng database bằng 1 cách vô tình hay cố ý. Ví dụ điển hình là drop database, hoặc sửa 1 trường trong bảng.
(7) Sau khi database xử lý dữ liệu xong thì sẽ phản hồi lại cho web server.
(8) Web server sau đó có thể xử lý logic thêm với dữ liệu từ database trả về (nếu cần). Rồi sau đó sinh ra trang HTML tĩnh hoặc dữ liệu dạng JSON để render ra trang web hiển thị trên trình duyệt trên máy của bạn. Ví dụ như việc bạn nhấn Like ở bước 5, sau khi được server của Facebook xử lý, thì bạn sẽ nhìn thấy số lượng like trên bài viết này tăng lên 1 chính là nhờ những bước trên.

“Success is not final, failure is not fatal: it is the courage to continue that counts.“

Winston Churchill


© Hiếu Trần 2020 - 2025

Tip: Use console.table() for better array logging!
Anime Character