Server response 204 No Content
สถานะ HTTP 204 (ไม่มีเนื้อหา)
สถานะ HTTP 204 (No Content) เป็นส่วนสำคัญในเว็บพัฒนาที่ช่วยให้เซิร์ฟเวอร์สามารถแจ้งให้ลูกค้าทราบว่าการร้องขอได้รับการประมวลผลเรียบร้อยแล้ว แต่ไม่มีข้อมูลที่จะส่งกลับในคำตอบ ในบทความนี้เราจะสำรวจวิธีการใช้สถานะนี้อย่างถูกต้อง พร้อมตัวอย่างปฏิบัติและการอภิปรายเกี่ยวกับกรณีที่อาจเกิดการใช้ผิดพลาดและวิธีการแก้ไขในหลายภาษาโปรแกรมมิ่ง
ลักษณะของสถานะ 204
- การกำหนดสถานะ 204: สถานะนี้หมายความว่าการดำเนินการที่ร้องขอประสบความสำเร็จ แต่ไม่มีเนื้อหาที่จะส่งกลับ
- เมื่อใดควรใช้สถานะ 204: ใช้เมื่อเซิร์ฟเวอร์ดำเนินการเสร็จสิ้น เช่น การลบหรืออัปเดตข้อมูลที่ไม่ต้องการส่งกลับ
- ความแตกต่างจากสถานะอื่นๆ:
- สถานะ 200: หมายถึงการร้องขอสำเร็จและมีเนื้อหาส่งกลับ
- สถานะ 204: หมายถึงการร้องขอสำเร็จแต่ไม่มีเนื้อหามา
ตัวอย่างการใช้สถานะ 204
-
ตัวอย่างที่ 1: การลบทรัพยากร
ในกรณีที่มีการลบทรัพยากร เซิร์ฟเวอร์สามารถตอบกลับด้วยสถานะ 204
fetch('/api/resource/1', { method: 'DELETE' }).then(response => { if (response.status === 204) { console.log('Resource deleted successfully'); } });
-
ตัวอย่างที่ 2: การอัปเดตโปรไฟล์ผู้ใช้
เมื่อลงทะเบียนหรืออัปเดตข้อมูล โดยไม่ต้องส่งข้อมูลกลับ
import requests response = requests.put('/api/user/profile', json={'name': 'John'}) if response.status_code == 204: print('Profile updated successfully')
-
ตัวอย่างที่ 3: การยืนยันการดำเนินการของผู้ใช้
เมื่อผู้ใช้ทำการยืนยันการกระทำ เช่น การส่งแบบฟอร์ม
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Process the form http_response_code(204); } ?>
ข้อผิดพลาดในการใช้สถานะ 204 และการแก้ไข
- ข้อผิดพลาดทั่วไป:
- การส่งข้อมูลในคำตอบ: ไม่ควรมีเนื้อหาในคำตอบ
- การใช้ในสถานการณ์ที่ต้องการเนื้อหา: ควรตรวจสอบว่าจำเป็นต้องส่งข้อมูลกลับหรือไม่
การแก้ไขใน JavaScript
// ตัวอย่างที่มีข้อผิดพลาด
fetch('/api/resource/1', {
method: 'DELETE'
}).then(response => {
if (response.status === 204) {
return response.json(); // ข้อผิดพลาด: ไม่ควรมีการส่งข้อมูลกลับ
}
});
// ตัวอย่างที่ถูกต้อง
fetch('/api/resource/1', {
method: 'DELETE'
}).then(response => {
if (response.status === 204) {
console.log('Resource deleted successfully');
}
});
การแก้ไขใน Python
# ตัวอย่างที่มีข้อผิดพลาด
response = requests.put('/api/user/profile', json={'name': 'John'})
if response.status_code == 204:
print(response.json()) # ข้อผิดพลาด: ไม่ควรมีการส่งข้อมูลกลับ
# ตัวอย่างที่ถูกต้อง
response = requests.put('/api/user/profile', json={'name': 'John'})
if response.status_code == 204:
print('Profile updated successfully')
การแก้ไขใน PHP
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process the form
http_response_code(204);
// ข้อผิดพลาด: การส่งข้อความกลับ
echo 'Success';
}
?>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process the form
http_response_code(204);
// ตัวอย่างที่ถูกต้อง: ไม่ควรมีข้อความ
}
?>
คำแนะนำในการใช้สถานะ 204 อย่างถูกต้อง
- คำแนะนำในการออกแบบ API: ควรใช้สถานะ 204 ในกรณีที่ไม่ต้องการส่งข้อมูลกลับ
- วิธีทดสอบการใช้สถานะ 204: ใช้เครื่องมือทดสอบ API เพื่อประเมินการตอบกลับจากเซิร์ฟเวอร์
สถานะ | คำอธิบาย | เมื่อใช้ |
---|---|---|
200 | การร้องขอสำเร็จและมีเนื้อหาส่งกลับ | เมื่อมีข้อมูลที่ต้องการส่งกลับ |
204 | การร้องขอสำเร็จแต่ไม่มีข้อมูลส่งกลับ | เมื่อไม่มีข้อมูลที่ต้องการส่งกลับ |