Phản hồi máy chủ 204 No Content
HTTP Trạng thái 204 (No Content)
Mã trạng thái HTTP 204 (No Content) là một phần quan trọng trong phát triển web, cho phép máy chủ thông báo cho khách hàng rằng yêu cầu đã được xử lý thành công, nhưng không có dữ liệu nào để gửi trong phản hồi. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng mã trạng thái này một cách chính xác, cung cấp các ví dụ thực tiễn và thảo luận về những trường hợp sử dụng sai có thể xảy ra và cách khắc phục trên nhiều ngôn ngữ lập trình khác nhau.
Đặc điểm của mã trạng thái 204
- Định nghĩa trạng thái 204: Mã trạng thái 204 được gửi khi máy chủ đã xử lý yêu cầu thành công nhưng không cần trả về nội dung nào.
- Khi nào sử dụng mã trạng thái 204: Thường được sử dụng trong các tình huống mà một hành động đã được thực hiện mà không cần phản hồi dữ liệu, chẳng hạn như xóa tài nguyên hoặc cập nhật mà không cần thông tin bổ sung.
- Sự khác biệt với các mã trạng thái khác:
- Trạng thái 200: Chỉ ra rằng yêu cầu đã thành công và có dữ liệu được trả về.
- Trạng thái 204: Thông báo rằng yêu cầu đã thành công, nhưng không có dữ liệu nào để trả về.
Ví dụ thực tiễn về việc sử dụng mã trạng thái 204
-
Ví dụ 1: Thực hiện yêu cầu thành công mà không có dữ liệu trả về
Mô tả kịch bản: Xóa tài nguyên
fetch('/api/resource/123', { method: 'DELETE' }).then(response => { if (response.status === 204) { console.log('Tài nguyên đã được xóa thành công.'); } });
-
Ví dụ 2: Cập nhật dữ liệu mà không cần trả về nội dung
Mô tả kịch bản: Cập nhật hồ sơ người dùng
import requests response = requests.put('/api/user/456', json={'name': 'New Name'}) if response.status_code == 204: print('Hồ sơ đã được cập nhật thành công.');
-
Ví dụ 3: Xác nhận thực hiện hành động mà không cần truyền dữ liệu
Mô tả kịch bản: Xác nhận hành động của người dùng
<?php $response = http_response_code(204); echo $response; ?>
Các lỗi khi sử dụng mã trạng thái 204 và cách khắc phục
- Các lỗi phổ biến dẫn đến việc sử dụng sai:
- Gửi dữ liệu trong phản hồi
- Sử dụng sai trong tình huống yêu cầu nội dung
- Khắc phục trên JavaScript:
// Mã có lỗi fetch('/api/resource', { method: 'POST', body: JSON.stringify({name: 'New Resource'}) }).then(response => { if (response.status === 204) { console.log('Có dữ liệu trả về!'); // Sai } }); // Mã sửa lỗi fetch('/api/resource', { method: 'POST' }).then(response => { if (response.status === 204) { console.log('Không cần dữ liệu trả về.'); } });
- Khắc phục trên Python:
# Mã có lỗi response = requests.post('/api/resource', json={'name': 'New Resource'}) if response.status_code == 204: print('Có dữ liệu trả về!') # Sai # Mã sửa lỗi response = requests.post('/api/resource') if response.status_code == 204: print('Không cần dữ liệu trả về.');
- Khắc phục trên PHP:
<?php http_response_code(204); echo json_encode(['status' => 'OK']); // Sai http_response_code(204); // Sửa lỗi ?>
Mẹo sử dụng mã trạng thái 204 một cách chính xác
- Khuyến nghị về thiết kế API: Chỉ sử dụng mã trạng thái 204 khi bạn chắc chắn rằng không cần truyền dữ liệu trong phản hồi.
- Cách kiểm tra việc sử dụng mã trạng thái 204: Sử dụng các công cụ kiểm tra API để xác nhận rằng phản hồi không có nội dung và trạng thái là 204.