Frontend vs Backend khác nhau ở đâu? Phân biệt 2 nửa của mọi web và app

Frontend là 'phòng khách' bạn thấy, Backend là 'bếp' bạn không thấy — hiểu ranh giới này giúp bạn thuê đúng dev, biết lỗi nằm ở đâu, và chọn đúng dịch vụ.

10 phút đọcCập nhật 2026-05-18
Đang tải audio...
Mục lục bài viết(20)
Sơ đồ kiến trúc 3 tầng — tầng trình diễn (Presentation/Frontend), tầng ứng dụng (Application/Backend), tầng dữ liệu (Database)

Sơ đồ kiến trúc 3 tầng của mọi web/app hiện đại: Frontend (tầng trình diễn — khách thấy) ↔ Backend (tầng ứng dụng — chạy ở server) ↔ Database (tầng dữ liệu — kho lưu). Mỗi tầng có vai trò riêng và giao tiếp qua API. Nguồn: Wikimedia Commons (public domain).

Hiểu đơn giản nhất

Mọi web và app đều có hai nửa, giống như một nhà hàng:

  • Frontend = phòng khách. Bạn (người dùng) nhìn thấy, chạm vào: menu, bàn ghế, đèn, không gian. Nếu phòng khách bẩn hay menu rối, bạn không vào quán lần thứ hai.
  • Backend = bếp. Bạn không thấy, nhưng nó quyết định món có ngon không, có đúng giờ không, có đúng giá không. Bếp lộn xộn thì dù phòng khách đẹp, quán vẫn lụn bại.

Cả hai bắt buộc phải có. Web chỉ có frontend (không có backend) như nhà hàng chỉ có phòng khách, không có bếp — không phục vụ được khách thật.

Tại sao bạn cần biết

  • Thuê đúng người. Web 5 trang giới thiệu công ty chỉ cần frontend developer. Web có đăng nhập, giỏ hàng, thanh toán bắt buộc cần thêm backend. Thuê sai vai trò là tốn tiền không hiệu quả.
  • Báo lỗi đúng người. "Nút Đặt hàng không bấm được" → frontend. "Đặt xong không thấy email xác nhận" → backend. Biết lỗi ở đâu giúp dev fix nhanh hơn 5-10 lần.
  • Chọn đúng platform. Shopify, WordPress, Webflow tự lo backend cho bạn. Custom code bắt buộc build cả hai.
  • Hiểu báo giá. Agency báo giá web 30 triệu vs 80 triệu — chênh lệch lớn nhất thường ở backend (có/không có DB, có/không có authentication, có/không có thanh toán).

So sánh nhanh

Tiêu chíFrontend (phòng khách)Backend (bếp)
Người dùng có thấy?Không
Chạy ở đâuTrình duyệt người dùng (Chrome, Safari)Máy chủ ở data center
Ngôn ngữ chínhHTML, CSS, JavaScriptNode.js, Python, Go, Java, PHP
Framework (bộ khung lập trình có sẵn) điển hìnhReact, Vue, Next.js, SvelteExpress, Django, Laravel, Spring Boot
Lưu dữ liệuTạm thời (localStorage, cookie — lưu trữ nhỏ trong trình duyệt)Vĩnh viễn (PostgreSQL, MongoDB, MySQL)
Quan tâm chínhĐẹp, mượt, dễ dùngĐúng, nhanh, an toàn
Lỗi điển hìnhLayout vỡ, animation lag, không responsive (giao diện co dãn theo màn hình)Mất data, lỗi 500, đặt đơn 2 lần
Lương VN 2026 (mid)15-30 triệu15-35 triệu

Frontend — phòng khách của web

Frontend làm gì

  • Hiển thị nội dung mà backend trả về: text, ảnh, video, bảng giá
  • Nhận tương tác của bạn: bấm, gõ, kéo thả, scroll, swipe
  • Validate dữ liệu cơ bản trước khi gửi backend: "email sai định dạng", "password phải 8 ký tự"
  • Animation và hiệu ứng: nút bấm "nhún" xuống, modal mở từ giữa màn hình, loading spinner

Công nghệ chính

  • HTML — khung sườn nội dung (heading, paragraph, list, link)
  • CSS — vẽ giao diện (màu, font, layout, responsive)
  • JavaScript — thêm tương tác (bấm là gì, validate form, gọi API)
  • Framework: React (Facebook), Vue (Evan You), Svelte, Next.js, Nuxt — giúp viết code có cấu trúc, tái sử dụng
  • Chạy trong: trình duyệt người dùng — Chrome, Safari, Firefox, Edge

Ai làm frontend

  • Frontend developer (chuyên về HTML/CSS/JS)
  • UI/UX designer (làm Figma, không code, cộng tác với frontend dev)

Backend — bếp của web

Bếp chuyên nghiệp của nhà hàng Central Restaurante ở Lima, Peru — đầu bếp đang chuẩn bị món với thiết bị inox sáng bóng

Bếp của một nhà hàng — khách hoàn toàn không thấy, nhưng quyết định món có ngon và đúng giờ không. Backend của web giống y như vậy: chạy âm thầm ở data center, không có UI đẹp đẽ, nhưng nếu lỗi thì cả web sập. Nguồn: Wikimedia Commons (CC BY-SA 4.0).

Backend làm gì

  • Xử lý logic nghiệp vụ: tính giá đơn hàng có khuyến mãi, áp dụng voucher, kiểm tra mật khẩu, xếp lịch giao hàng
  • Lưu và truy xuất database: nhớ ai đã mua gì, ai login lúc mấy giờ, sản phẩm nào hết hàng
  • Bảo mật: xác thực user (Auth — Authentication — xác thực ai đăng nhập), mã hoá password, chống tấn công SQL injection, rate-limit để chống spam
  • Tích hợp dịch vụ ngoài: thanh toán VNPay/Stripe, gửi tin Zalo OA, gửi email qua SendGrid, gửi SMS qua Twilio
  • Cron job: gửi báo cáo mỗi sáng 8h, sao lưu DB mỗi đêm, dọn dẹp data cũ hàng tuần

Công nghệ chính

  • Ngôn ngữ: Node.js (JavaScript), Python, Go, Java, PHP, Ruby, C#
  • Framework: Express, NestJS, Django, FastAPI, Laravel, Spring Boot, Ruby on Rails
  • Database: PostgreSQL, MySQL, MongoDB, Redis, SQLite
  • Chạy trong: máy chủ Linux ở data center (AWS, Google Cloud, DigitalOcean, hosting Việt Nam như Vinahost, Tenten)

Ai làm backend

  • Backend developer (chuyên server-side)
  • DBA (Database administrator) — dự án lớn cần người chuyên quản DB
  • DevOps engineer — lo phần triển khai, scaling, monitoring

Cầu nối: API

Frontend và backend không nói chuyện trực tiếp với nhau. Chúng giao tiếp qua API (Application Programming Interface) — như bồi bàn trong nhà hàng:

  • Bồi bàn nhận order từ phòng khách (frontend) → truyền vào bếp (backend)
  • Bếp nấu xong → bồi bàn mang món ra cho khách
  • Khách không vào bếp, bếp không ra phòng khách — luôn qua bồi bàn

Mọi action có ý nghĩa (đăng nhập, đặt đơn, xem giỏ hàng) đều là một lần frontend gọi API tới backend. Chi tiết về API ở bài API là gì (sắp có).

Ví dụ thực tế: đặt 1 ly trà sữa trên Shopee Food

Bạn mở app Shopee Food trên điện thoại, đặt 1 ly trà sữa Phúc Long, topping trân châu, 25.000đ. Đây là phân chia front/back:

Frontend (chạy trong app trên điện thoại bạn)

  1. Hiển thị danh sách quán + ảnh món (dữ liệu lấy từ backend qua API)
  2. Cho bạn vuốt, lọc theo loại (cà phê, trà sữa, đồ ăn nhanh)
  3. Bấm vào quán Phúc Long → hiện menu (1 lần gọi API nữa)
  4. Form đặt món: chọn size, topping, ghi chú "ít đường" — validate "phải chọn ít nhất 1 món"
  5. Bạn bấm "Đặt hàng" → frontend gửi API tới backend
  6. Backend xử lý xong → frontend hiện popup "Đặt thành công, mã đơn ABC123"

Backend (chạy ở data center Shopee)

  1. Nhận yêu cầu đặt món từ frontend (qua API)
  2. Kiểm tra quán Phúc Long có còn nhận đơn giờ này không (DB lookup)
  3. Tính tiền: 25.000đ + phí ship 15.000đ - khuyến mãi 10.000đ = 30.000đ
  4. Trừ tiền tài khoản ShopeePay của bạn (gọi sang dịch vụ thanh toán)
  5. Lưu đơn hàng vào DB với trạng thái "Đang chuẩn bị"
  6. Gửi notification cho quán Phúc Long: "Có đơn mới ABC123"
  7. Tìm shipper trong khu vực 2km — Grab nội bộ chọn shipper gần nhất
  8. Tự động update trạng thái mỗi 30 giây: "đang chuẩn bị" → "shipper đã đến quán" → "đang giao" → "đã giao"

Ranh giới: API giữa Front và Back

Hành độngFrontend gửiBackend trả về
Xem menuGET /restaurant/phuclong/menuJSON 50 món + ảnh URL + giá
Đặt mónPOST /order + dữ liệu món{ order_id: "ABC123", total: 30000, eta_min: 25 }
Tra trạng tháiGET /order/ABC123/status{ status: "shipper_dang_giao", eta_min: 8 }
Huỷ đơnPOST /order/ABC123/cancel{ refunded: 30000, status: "cancelled" }

Mỗi tương tác có ý nghĩa trong app đều là một cuộc nói chuyện giữa frontend (app) và backend (server Shopee) qua API.

Full-stack — biết cả hai nửa

Một số developer làm được cả hai (full-stack developer). Họ có lợi và hạn chế:

Lợi:

  • Tự build được dự án nhỏ một mình
  • Hiểu cả hai phía → thiết kế hệ thống hiệu quả hơn
  • Linh hoạt khi team thiếu người, có thể chuyển đổi nhiệm vụ

Hạn chế:

  • Khó giỏi đỉnh ở cả hai — mỗi phía đã rất rộng
  • Dự án lớn (10+ developer) vẫn cần chuyên gia riêng từng phía
  • Lương full-stack thường cao hơn mid-level một bên ~20% vì hiếm hơn

Pattern phổ biến: dùng full-stack cho MVP (Minimum Viable Product — sản phẩm tối thiểu khả dụng, phiên bản đầu để test thị trường) trong 2-3 tháng, sau đó tách thành 2 team chuyên khi product fit.

Khi nào cần ai

Bạn cần làmChỉ frontend đủ?Cần backend?
Landing page giới thiệu công tyKhông (trừ form liên hệ)
Blog (đọc only)Có (dùng CMS — Content Management System — hệ quản lý nội dung — như Sanity)Không
Web bán hàng có giỏ + thanh toánKhông
App đặt đồ ăn / gọi xeKhôngCó (rất nặng)
Tool cá nhân (calculator, todo)Không nếu data lưu local
SaaS (Software as a Service — phần mềm dạng dịch vụ) đa người dùng (Notion clone)KhôngCó (auth + DB)
Dashboard kết nối DB hiện cóKhông

Tóm tắt 1 dòng

Frontend = phòng khách bạn thấy, chạy trong trình duyệt. Backend = bếp bạn không thấy, chạy trên server. API = bồi bàn truyền lệnh giữa hai phía. Thuê đúng vai trò = tiết kiệm và đỡ lỗi.

Đọc tiếp

Câu hỏi thường gặp

Tôi muốn làm web bán hàng, cần thuê frontend hay backend?
Cả hai, nhưng theo thứ tự. Web tĩnh giới thiệu shop (5-7 trang, không có giỏ hàng) chỉ cần frontend. Web có đăng nhập, giỏ hàng, thanh toán bắt buộc có backend. Cách rẻ nhất: dùng platform sẵn (Shopify, Haravan, WooCommerce) — họ đã có backend, bạn chỉ thuê người chỉnh frontend.
Full-stack developer có rẻ hơn thuê 2 người riêng không?
Rẻ hơn chi phí thuê đầu vào, nhưng có hai cái mất: tốc độ chậm hơn (1 người làm 2 việc) và chất lượng từng phía thấp hơn chuyên gia. Dự án dưới 3 tháng full-stack ổn; trên đó nên tách 2 vị trí. Một số agency dùng full-stack cho prototype rồi thay bằng team chuyên khi product fit.
Tại sao web hiển thị đúng nhưng đặt hàng không thành công?
Vì frontend (hiển thị) và backend (xử lý đơn) là hai hệ thống riêng. Frontend có thể chạy ngon trên Vercel/Cloudflare nhưng backend trên server gốc đang sập. Cách kiểm tra: mở DevTools (F12) → Network tab → bấm 'Đặt hàng' → xem request có trả 200 không. 500 = backend lỗi, 200 nhưng UI báo lỗi = frontend xử lý sai.
Frontend developer có cần biết database không?
Không bắt buộc, nhưng nên biết cơ bản. Frontend cần biết database trả về dữ liệu dạng gì (JSON structure) để render đúng. Không cần biết viết SQL hay tối ưu query — đó là việc backend. Học 1 buổi về 'database trả về JSON như nào' đủ để làm việc với backend trơn tru.
JavaScript có phải chỉ dùng cho frontend?
Không. JavaScript ban đầu chỉ chạy trong trình duyệt (frontend), nhưng từ 2009 có Node.js cho phép chạy trên server (backend). Hiện nay nhiều dự án dùng JavaScript ở cả hai phía — gọi là JavaScript full-stack hay 'isomorphic'. Next.js, Nuxt, Remix là framework hỗ trợ pattern này.
Web 'static site' (Jekyll, Hugo) có backend không?
Có nhưng không phải backend đầy đủ. Static site chỉ tạo HTML/CSS/JS sẵn lúc build, không có server xử lý mỗi request. Nếu cần thêm form liên hệ hoặc đăng ký, dùng dịch vụ ngoài (Formspree, EmailJS, Cloudflare Workers) — kỹ thuật gọi là 'serverless backend' hay 'JAMstack'.
Tại sao backend developer thường lương cao hơn frontend?
Sai một phần. Mức trung bình hai vị trí gần ngang nhau ở Việt Nam (15-30 triệu cho mid-level 2026). Backend có thể cao hơn ở mảng tài chính, ngân hàng vì yêu cầu bảo mật và độ phức tạp. Frontend cao hơn ở agency cao cấp vì yêu cầu UI/animation tinh tế. Xem lương cụ thể tại TopDev hoặc ITviec là chính xác hơn so sánh chung.