Bức tranh toàn cảnh
Gần như mọi ứng dụng bạn sẽ xây đều gồm bốn phần nói chuyện với nhau:
- (giao diện người dùng) — những gì người dùng nhìn thấy và bấm vào. Các màn hình, nút bấm, và chữ hiển thị bên trong trình duyệt hoặc ứng dụng điện thoại.
- (phần xử lý phía sau) — logic chạy trên một máy chủ mà bạn kiểm soát. Nó thực thi các quy tắc, làm phần việc nặng, và quyết định ai được phép làm gì.
- (cơ sở dữ liệu) — nơi thông tin được lưu trữ để ngày mai nó vẫn còn đó. Tài khoản, bài viết, đơn hàng.
- Hosting (lưu trữ/máy chủ) — những chiếc máy tính, ở đâu đó ngoài kia trên thế giới, thực sự chạy tất cả những thứ trên để người khác có thể truy cập được.
Đây là cách chúng kết nối với nhau:
┌──────────────┐ request ┌──────────────┐ query ┌──────────────┐
│ │ ─────────────────────▶ │ │ ──────────────────▶ │ │
│ FRONTEND │ │ BACKEND │ │ DATABASE │
│ (browser) │ ◀───────────────────── │ (server) │ ◀────────────────── │ (storage) │
│ │ response │ │ rows │ │
└──────────────┘ └──────────────┘ └──────────────┘
what you see the rules + logic where data lives
└──────────────────────────── all of this runs on HOSTING ───────────────────────────────────┘
Frontend không bao giờ nói chuyện trực tiếp với database. Nó luôn đi qua backend, nơi các quy tắc được đặt ra. Chỉ riêng sự thật này đã giải thích được rất nhiều điều về cách ứng dụng được xây dựng — và tại sao "cứ để trang web đọc thẳng database" gần như không bao giờ là câu trả lời đúng.