Share

Giải ngố thuật ngữ Web Dev (Phần 3): Backend, Server, Database, API là gì?

Ảnh đại diện giải thích Backend là gì - phần lõi xử lý logic và quản lý dữ liệu cho Frontend của website - siucode.com

Chào anh em! Anh em còn nhớ Phần 2 mình nói về Frontend như “mặt tiền” và “nội thất” của ngôi nhà web không? Nó đẹp, nó tiện nghi cho người dùng xem và tương tác. Nhưng mà, đồ đạc trong nhà lấy từ đâu ra? Ai quản lý kho? Ai nấu ăn trong bếp? Ai đảm bảo điện nước luôn chạy tốt?

Đó chính là nhiệm vụ của Backend, là nhà bếp, phòng máy, kho chứa đồ của website. Nó là tất cả những gì chạy ngầm phía sau, mà người dùng không trực tiếp nhìn thấy, nhưng lại cực kỳ quan trọng để website hoạt động đúng. Lập trình viên Backend (Backend Developer) là những người xây dựng và quản lý phần lõi phức tạp này.

Vậy Backend gồm những thành phần chính nào?

Server (máy chủ): Nơi trú ngụ và vận hành website

Đầu tiên, website của bạn phải “ở” đâu đó đúng không? Nó không thể lơ lửng trên mây được (à thực ra “cloud” – đám mây cũng là một dạng server, nhưng nói sau nhé!). Website cần được đặt trên một máy tính đặc biệt, hoạt động 24/7, kết nối liên tục với Internet. Máy tính đó gọi là Server (máy chủ).

  • Vai trò:
    • Lưu trữ: Chứa tất cả các tệp tin mã nguồn (HTML, CSS, JS của Frontend, và cả code Backend), hình ảnh, video… của website.
    • Chạy ứng dụng: Thực thi các mã lệnh Backend để xử lý logic, tính toán.
    • Phản hồi yêu cầu: Lắng nghe các yêu cầu (requests) từ trình duyệt của người dùng (Client – đã nói ở Phần 1) và gửi dữ liệu phản hồi (responses) tương ứng.
  • Analogy: Server giống như mảnh đất và ngôi nhà vật lý nơi website của bạn tọa lạc. Nó cũng giống như phòng máy/phòng điều khiển trung tâm của ngôi nhà, đảm bảo mọi thứ được vận hành. Có nhiều loại server khác nhau (shared host, VPS, dedicated server, cloud server…), nhưng về cơ bản chúng đều làm nhiệm vụ này.
Minh họa Server (Máy chủ) là gì - nơi lưu trữ file, chạy ứng dụng và xử lý yêu cầu cho website - siucode.com

Database (Cơ sở dữ liệu): Nơi lưu trữ dữ liệu có hệ thống

Ok, website có chỗ ở (Server) rồi. Nhưng thông tin người dùng đăng ký, bài viết bạn đăng lên blog, sản phẩm bạn bán trên shop… tất cả những dữ liệu đó lưu ở đâu? Không lẽ lưu hết trong các tệp tin rời rạc? Không ổn! Chúng ta cần một nơi lưu trữ có tổ chức, dễ dàng tìm kiếm, thêm, sửa, xóa. Đó là lúc Database (cơ sở dữ liệu – CSDL) ra đời.

  • Vai trò: Lưu trữ dữ liệu một cách có cấu trúc và bền vững (lâu dài). Dữ liệu được tổ chức thành các bảng (tables), bản ghi (records), trường (fields)… (đối với CSDL quan hệ như MySQL, PostgreSQL) hoặc các định dạng khác (như JSON trong CSDL NoSQL như MongoDB) để dễ dàng quản lý và truy vấn.
  • Analogy: Database giống như một cái kho hàng cực lớn, được sắp xếp ngăn nắp với các kệ, ngăn, ô được đánh số rõ ràng. Hoặc hình dung nó như một cái tủ đựng hồ sơ khổng lồ với các ngăn kéo, tập tài liệu được phân loại cẩn thận. Khi Backend cần thông tin (ví dụ: thông tin user A), nó sẽ đến đúng ngăn tủ (bảng user), tìm đúng tập hồ sơ (bản ghi user A) và lấy ra thông tin cần thiết.
Minh họa Database (Cơ sở dữ liệu) là gì - nơi lưu trữ dữ liệu có cấu trúc như thông tin người dùng, sản phẩm, bài viết cho website - siucode.com

Ngôn ngữ lập trình backend và framework

Có Server (chỗ ở), có Database (kho chứa đồ), vậy ai sẽ là người quản lý, xử lý logic, chạy đi lấy đồ từ kho khi có yêu cầu? Đó là nhiệm vụ của Backend Code, được viết bằng các Ngôn ngữ lập trình Backend (Backend Programming Languages).

  • Vai trò: Xử lý logic nghiệp vụ (business logic). Ví dụ: kiểm tra thông tin đăng nhập có đúng không, tính toán giỏ hàng, xử lý đơn hàng, lấy dữ liệu từ Database theo yêu cầu của Frontend, định dạng lại dữ liệu trước khi gửi đi…
  • Các ngôn ngữ phổ biến: Có rất nhiều ngôn ngữ dùng cho Backend, phổ biến có thể kể đến:
    • Node.js: Cho phép viết Backend bằng JavaScript (quen thuộc nếu bạn đã biết JS từ Frontend).
    • Python: Mạnh mẽ, dễ đọc, có các framework nổi tiếng như Django, Flask.
    • PHP: Ngôn ngữ “lão làng”, rất phổ biến, đặc biệt với WordPress, có framework Laravel.
    • Java: Mạnh mẽ, ổn định, thường dùng cho các hệ thống lớn (Spring framework).
    • Ruby: Ngôn ngữ thanh lịch với framework Ruby on Rails.
    • Và nhiều ngôn ngữ khác như C#, Go…
  • Frameworks: Để code nhanh hơn, hiệu quả hơn, các lập trình viên thường sử dụng các Framework – bộ khung sườn cung cấp sẵn các cấu trúc, thư viện, công cụ thông dụng cho việc xây dựng ứng dụng Backend.
  • Analogy: Ngôn ngữ Backend và Frameworks giống như người quản gia/đầu bếp/bộ não xử lý trong ngôi nhà. Họ nhận yêu cầu (ví dụ: “khách muốn ăn món A”), biết công thức (logic), lấy nguyên liệu từ kho (Database), chế biến (xử lý dữ liệu), và đưa món ăn cho nhân viên phục vụ mang ra cho khách.
Minh họa logic nghiệp vụ (business logic) được xử lý bởi ngôn ngữ lập trình Backend như Node.js, Python, PHP - siucode.com

API (Application Programming Interface): Cầu nối giao tiếp giữa Frontend và Backend

Đây là khái niệm cực kỳ quan trọng, là cầu nối giao tiếp giữa thế giới Frontend và thế giới Backend. API dịch nôm na là Giao diện lập trình ứng dụng.

  • Vai trò: Nó định nghĩa ra các quy tắc, cách thức để Frontend và Backend (hoặc các hệ thống khác nhau) có thể “nói chuyện”, trao đổi dữ liệu với nhau một cách chuẩn hóa. Frontend không cần biết Backend xử lý logic phức tạp ra sao, Database lưu trữ thế nào. Nó chỉ cần biết “gọi” đúng API với tham số cần thiết, và API sẽ trả về dữ liệu nó cần.
  • Analogy: API giống như anh nhân viên phục vụ trong nhà hàng (ngôi nhà web).
    • Khách (Frontend) xem Menu (danh sách các API endpoints và quy tắc gọi) và gọi món (gửi request đến API).
    • Nhân viên phục vụ (API) nhận yêu cầu, chuyển vào nhà bếp (Backend).
    • Đầu bếp (Backend code) nấu món ăn (xử lý logic, lấy dữ liệu từ kho Database).
    • Nhân viên phục vụ (API) nhận món ăn đã nấu xong (dữ liệu đã xử lý) và mang ra bàn cho khách (trả response về cho Frontend).
    • Quan trọng: Khách không cần vào bếp xem đầu bếp nấu, chỉ cần gọi đúng món qua nhân viên phục vụ. Tương tự, Frontend chỉ cần gọi API, không cần biết Backend làm gì bên trong. Phổ biến hiện nay là các RESTful API sử dụng giao thức HTTP và định dạng dữ liệu JSON.
Minh họa API (Application Programming Interface) là gì - cầu nối giao tiếp và trao đổi dữ liệu giữa Frontend và Backend - siucode.com

Tổng kết

Tóm lại, Backend là phần lõi phức tạp nhưng không thể thiếu, bao gồm:

  • Server: Nơi cư trú và vận hành website.
  • Database: Kho lưu trữ dữ liệu có tổ chức.
  • Ngôn ngữ Backend: Bộ não xử lý logic nghiệp vụ.
  • API: Cầu nối giao tiếp chuẩn hóa với Frontend.

Frontend và Backend tuy hai mà một, luôn cần phối hợp nhịp nhàng với nhau (thông qua API) để tạo nên một ứng dụng web hoàn chỉnh, đúng theo mô hình Client-Server mà chúng ta đã tìm hiểu.

Lời kết

Vậy là xong phần khám phá  Backend! Nghe có vẻ nhiều thứ hơn Frontend đúng không? Đúng vậy, Backend thường bao gồm nhiều công nghệ và khái niệm trừu tượng hơn. Nhưng đừng lo, cứ từ từ tìm hiểu là sẽ thông suốt thôi anh em ạ. Hiểu được vai trò của từng thành phần này là bạn đã tiến một bước rất dài trong việc nắm bắt cách một website hoạt động rồi đó.

Ở phần tiếp theo: Có Frontend đẹp, có Backend mạnh rồi, nhưng làm sao để các lập trình viên quản lý code hiệu quả, làm việc nhóm ngon lành, hay đơn giản là… không sợ lỡ tay xóa mất code? Phần 4 sẽ giới thiệu về những đồ nghề thiết yếu của dân dev, đặc biệt là ông vua quản lý phiên bản Git.

Hẹn gặp anh em ở phần tới!

SiuCode – Vừa code vừa siuuuu 🚀

You may also like

Mục lục