Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Mã trạng thái là cách đầu tiên và ngắn nhất để server nói với client chuyện gì đã xảy ra. Dùng đúng mã giúp ứng dụng khách xử lý chính xác, công cụ giám sát hiển thị có nghĩa, và đồng đội đọc log dễ hơn. Dùng sai (nhất là trả 200 cho mọi thứ) là nguồn gây rối quen thuộc.
Chỉ riêng việc phân biệt 4xx (lỗi của người gọi) và 5xx (lỗi của chúng ta) đã giúp rất nhiều khi điều tra sự cố và đặt cảnh báo.
Location trỏ tới tài nguyên đó.301 chuyển hướng vĩnh viễn (tốt cho SEO khi đổi địa chỉ), 302 và 307 chuyển hướng tạm thời, 304 Not Modified báo nội dung chưa đổi để trình duyệt dùng bản cache. Với API thuần túy, bạn hiếm khi dùng ngoài 304.
Retry-After.Cặp 401 và 403 hay bị nhầm nhất. Cách nhớ: 401 là chưa đăng nhập, 403 là đã đăng nhập nhưng không được phép. Một điểm tinh tế về bảo mật: để tránh lộ việc một tài nguyên có tồn tại, đôi khi người ta trả 404 thay vì 403 cho tài nguyên không thuộc về người gọi.
Với 5xx, đừng trả chi tiết nội bộ cho người dùng. Hãy ghi log đầy đủ và trả thông điệp chung kèm một mã tham chiếu để tra cứu.
// Expressapp.post('/users', async (req, res) => { if (!req.body.email) { return res.status(422).json({ error: 'Thiếu email' }); } const exists = await users.findByEmail(req.body.email); if (exists) { return res.status(409).json({ error: 'Email đã được dùng' }); } const user = await users.create(req.body); res.status(201).location('/users/' + user.id).json(user);});Mã trạng thái chỉ là nửa câu chuyện; nửa còn lại là nội dung giải thích. Một phản hồi 422 chỉ nói "dữ liệu không hợp lệ" thì chưa đủ, hãy kèm danh sách trường sai và lý do bằng ngôn ngữ người dùng hiểu được. Một phản hồi 500 thì ngược lại: đừng giải thích chi tiết, chỉ kèm một mã tham chiếu như request_id để người dùng báo lại và bạn tra được log. Cân bằng giữa hữu ích cho người gọi và an toàn cho hệ thống là kỹ năng nhỏ nhưng quan trọng của người viết API.
Cũng đừng quên cấu hình proxy và trình cân bằng tải: nhiều lỗi 502, 503, 504 không đến từ code của bạn mà từ tầng hạ tầng phía trước. Khi đọc log, hãy phân biệt xem mã đó do ứng dụng trả hay do nginx hoặc dịch vụ cloud sinh ra, để tìm đúng nơi cần sửa.
Bạn không cần thuộc hết hàng chục mã, chỉ cần nắm khoảng mười mã ở trên và dùng chúng nhất quán. Đây là một trong những cải thiện rẻ nhất mà tác động lớn nhất đến chất lượng API của bạn.
Nếu muốn luyện tập cùng bài tập thực tế, hãy ghé các khóa học tại codebem.com khi bạn sẵn sàng.
Nguyễn Đình Cường
0 comment