“Tất tần tật” về mã trạng thái HTTP (HTTP Status Codes)

22:20 15/12/2023

HTTP Status Codes là gì? Có bao nhiêu loại mã trạng thái HTTP? Hãy cùng theo dõi bài viết dưới đây để có câu trả lời nhé!

  • Status Code là gì?

Đây là các mã mô tả ngắn gọn phản hồi từ máy chủ (server) và nó cực kì hữu ích khi gỡ lỗi (debugging) các ứng dụng web, mobile hoặc APIs. Trong bài này chúng ta sẽ nói về việc làm sao kiểm soát status codes trong thực tế.

  • 200s
  • 200 – OK: Mã này về cơ bản là máy chủ (server) đang đập tay (high five) với bạn. Có nghĩa là mọi thứ diễn ra tốt đẹp ở phía server.

  • 201 – CREATED: Khi một dữ liệu mới được tạo thành công.
    Ví dụ bạn xây dựng một API dùng để thêm mới user. 201 có nghĩa là server đã nhận được dữ liệu, user mới được tạo.

  • 204 – No Content: Khi bạn gửi một DELETE request để xóa dữ liệu, 204 có nghĩa việc xóa thành công và không có dữ liệu để trả về.

  • 400s

Đây là cách server nói với bạn: “Hãy kiểm tra lại dữ liệu mà bạn vừa gửi.”

  • 400 – Bad Request: có nghĩa là server không hiểu dữ liệu bạn gửi lên là gì.

  • 401 – Unauthorized: có nghĩa là thiếu hoặc bạn không được phép truy cập. Điều này giống như việc bạn đang cố vào một cái phòng mà không có chìa khóa. Cánh cửa chỉ mở khi bạn cung cấp đúng chìa khóa hay nói cách khác, mã/chuỗi xác thực chính xác.

  • 403 – Forbidden: Tưởng tượng bạn có một vé thường để vào xem buổi hòa nhạc, nhưng cố gắng lẻn vào khu vực VIP. Hay nói cách khác, bạn đang cố truy cập các tính năng của quyền admin với tư cách tài khoản bình thường.

  • 404 – Not Found: không tìm thấy file được yêu cầu. Bạn cần kiểm tra lại route và cả phía server.

  • 429 – Too Many Requests: có nghĩa bạn gửi requests quá nhanh, quá nhiều và đã đạt tới giới hạn cho phép.

  • 500s

Có nghĩa là có vấn đề gì đó không ổn ở phía server. Những mã này thường yêu cầu điều tra sâu hơn để tìm ra lỗi.

  • 500 – Internal Server Errors: server cần sự can thiệp, cần xem kĩ logs để tìm manh mối.

  • 502 – Bad Gateway: gợi ý răng có vấn đề giữa các servers, ví dụ lỗi proxy chẳng hạn. Tưởng tượng bạn đang sử dụng nginx như một reverse proxy và nó không thể nhận được các phản hồi hợp lệ từ máy chủ ứng dụng, lúc đó bạn có thể nhận được phản hồi 502.

Điều này cũng có thể xảy ra do server bị quá tải, vấn đề về mạng, hoặc có thể do sai cấu hình.

  • 503 – Service Unavailable: có nghĩa server không thể xử lý request tại thời điểm đó có thể do bảo trì hoặc quá tải lưu thông.

Khác với 502: lỗi kết nối/liên lạc giữa các servers. 503 nói về trạng thái của server hiện tại không có khả năng xử lý các requests.

  • 300s

Là các mã Redirection:

  • 301 – Moved Permanently: là một địa chỉ chuyển tiếp với vị trí trỏ tới một URL vĩnh viễn.

  • 302 – Found: chỉ tới địa chỉ mới nhưng URL gốc vẫn hoạt động.

  • 304 – Not Modified: Trình duyệt hỏi server: dữ liệu này có bị thay đổi từ lúc được lưu vào cache không? Và sever trả lời: 304 có nghĩa không có gì thay đổi. Việc này giúp tiết kiệm băng thông và tránh việc tải lại dữ liệu không cần thiết.

  • 100s

  • 101 – Switching Protocols: khi chuyển từ HTTP qua WebSocket
  • 100 – Continue: Sever đã nhận được request headers và máy khách có thể tiếp tục gửi request body.

(nguồn tham khảo: System Design Interview by Alex Xu & Sahn Lam)

Giảng viên: Hoàng Hà
Bộ môn Công nghệ Thông tin
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2024