HTTP Status Codes là gì?
HTTP Status Codes là các mã số ba chữ số mà server gửi về client để chỉ rõ kết quả xử lý một HTTP request. Chúng được phân loại thành 5 nhóm chính dựa trên chữ số đầu tiên, giúp automation workflow nhanh chóng xác định thành công hay lỗi. Mỗi mã đi kèm reason phrase để con người dễ hiểu, nhưng code dùng cho lập trình kiểm tra điều kiện.
Vai trò của HTTP Status Codes trong tích hợp hệ thống
Trong automation và workflow, HTTP Status Codes quyết định luồng xử lý tiếp theo của các node như HTTP Request hoặc API Call. Ví dụ, mã 2xx cho phép workflow tiếp tục, trong khi 4xx hoặc 5xx kích hoạt error handling, retry logic. Chúng đảm bảo tích hợp đáng tin cậy giữa các hệ thống, giúp debug nhanh khi gọi API từ n8n, Zapier hoặc các tool tương tự.
Các mã phổ biến trong workflow bao gồm:
- 200 OK: Request thành công, trả dữ liệu bình thường.
- 201 Created: Tạo mới resource thành công, thường kèm header
Location. - 204 No Content: Xử lý thành công nhưng không trả body, phù hợp DELETE hoặc UPDATE không cần response.
- 401 Unauthorized: Thiếu authentication, cần thêm API Key hoặc OAuth 2.0.
HTTP Status Codes hoạt động như thế nào trong thực tế?
Server gửi HTTP Status Codes trong response header ngay sau khi nhận và xử lý request. Client (như workflow tool) đọc mã này để branch logic: success path cho 2xx, redirect cho 3xx, error cho 4xx/5xx.
Các nhóm chính:
- 1xx Informational: Server đang xử lý, hiếm dùng trong automation (ví dụ
100 Continuecho upload lớn). - 2xx Successful: Workflow thành công, tiếp tục node sau (ví dụ
202 Acceptedcho async task). - 3xx Redirection: Client cần follow redirect, thường tự động trong HTTP client nhưng có thể cấu hình manual.
- 4xx Client Error: Lỗi từ phía request, như
400 Bad Request(payload sai),429 Too Many Requests(rate limiting). - 5xx Server Error: Lỗi server, kích hoạt retry hoặc fallback (ví dụ
500 Internal Server Error,502 Bad Gateway).
Trong n8n hoặc tương tự, node HTTP Request output field statusCode để kiểm tra bằng expression như {{ $json.statusCode === 200 }}.
Những lưu ý quan trọng về HTTP Status Codes
Không phải tất cả API đều dùng chuẩn; một số trả 200 OK cho mọi lỗi thay vì 4xx, gây khó debug. Luôn kiểm tra documentation của endpoint cụ thể, và implement error handling linh hoạt dựa trên status range thay vì mã chính xác.
Các lỗi phổ biến khi tích hợp:
- Bỏ qua
429 Too Many Requests: Gây block IP, cần thêm delay hoặc queue. - Nhầm
401 Unauthorizedvới403 Forbidden: 401 thiếu auth, 403 có auth nhưng không quyền. - Không handle redirect 3xx: Dẫn đến loop hoặc miss resource mới.
- Quên kiểm tra body dù status 2xx: Một số API trả error detail trong JSON dù code thành công.
Sử dụng switch node dựa trên status để route workflow an toàn, kết hợp với Retry và Timeout.
Các thuật ngữ liên quan đến HTTP Status Codes
Dưới đây là một số thuật ngữ thường gặp liên quan đến HTTP Status Codes trong automation:
- HTTP Methods: Các hành động như GET, POST, PUT quyết định status code mong đợi (ví dụ POST thường trả 201).
- Rate Limiting: Cơ chế giới hạn request gây ra mã
429 Too Many Requests, cần monitor trong workflow. - Error Handling: Xử lý 4xx/5xx bằng retry logic hoặc fallback branch.
- Response Headers: Chứa status code cùng
Content-Type,Locationđể parse đầy đủ response.
Các câu hỏi thường gặp
HTTP Status Codes 200 và 201 khác nhau thế nào?
200 OK dùng cho request thành công chung, trả dữ liệu hiện có như GET hoặc PUT update. 201 Created dành riêng cho tạo mới resource (như POST), thường kèm header Location chỉ URL mới. Trong workflow, dùng 201 để lấy ID resource vừa tạo và chain node tiếp theo.
Khi nào workflow nên retry dựa trên HTTP Status Codes?
Retry phù hợp với 5xx (server error) hoặc 429 Too Many Requests, với exponential backoff. Tránh retry 4xx vì lỗi từ client như 400 Bad Request cần fix input trước. Cấu hình max retry (thường 3-5 lần) để tránh loop vô tận.
Làm sao handle mã 3xx Redirection trong automation?
Hầu hết HTTP client tự follow 301/302, nhưng kiểm tra Location header nếu cần logic custom. Trong n8n, dùng followRedirect option hoặc parse manual để tránh redirect loop. Thường gặp khi API migrate endpoint.
HTTP Status Codes có khác nhau giữa REST và GraphQL không?
Cả hai dùng chung chuẩn HTTP, nhưng GraphQL thường trả 200 OK ngay cả lỗi (error trong body JSON). REST strict hơn với 4xx cho query sai, cần parse body thêm ngoài status. Luôn check spec của API cụ thể khi build workflow.