Contents

    Server response 204 No Content

    สถานะ HTTP 204 (ไม่มีเนื้อหา)

    สถานะ HTTP 204 (No Content) เป็นส่วนสำคัญในเว็บพัฒนาที่ช่วยให้เซิร์ฟเวอร์สามารถแจ้งให้ลูกค้าทราบว่าการร้องขอได้รับการประมวลผลเรียบร้อยแล้ว แต่ไม่มีข้อมูลที่จะส่งกลับในคำตอบ ในบทความนี้เราจะสำรวจวิธีการใช้สถานะนี้อย่างถูกต้อง พร้อมตัวอย่างปฏิบัติและการอภิปรายเกี่ยวกับกรณีที่อาจเกิดการใช้ผิดพลาดและวิธีการแก้ไขในหลายภาษาโปรแกรมมิ่ง

    204 - No Content

    ลักษณะของสถานะ 204

    • การกำหนดสถานะ 204: สถานะนี้หมายความว่าการดำเนินการที่ร้องขอประสบความสำเร็จ แต่ไม่มีเนื้อหาที่จะส่งกลับ
    • เมื่อใดควรใช้สถานะ 204: ใช้เมื่อเซิร์ฟเวอร์ดำเนินการเสร็จสิ้น เช่น การลบหรืออัปเดตข้อมูลที่ไม่ต้องการส่งกลับ
    • ความแตกต่างจากสถานะอื่นๆ:
      • สถานะ 200: หมายถึงการร้องขอสำเร็จและมีเนื้อหาส่งกลับ
      • สถานะ 204: หมายถึงการร้องขอสำเร็จแต่ไม่มีเนื้อหามา

    ตัวอย่างการใช้สถานะ 204

    1. ตัวอย่างที่ 1: การลบทรัพยากร

      ในกรณีที่มีการลบทรัพยากร เซิร์ฟเวอร์สามารถตอบกลับด้วยสถานะ 204

      
      fetch('/api/resource/1', {
          method: 'DELETE'
      }).then(response => {
          if (response.status === 204) {
              console.log('Resource deleted successfully');
          }
      });
              
    2. ตัวอย่างที่ 2: การอัปเดตโปรไฟล์ผู้ใช้

      เมื่อลงทะเบียนหรืออัปเดตข้อมูล โดยไม่ต้องส่งข้อมูลกลับ

      
      import requests
      
      response = requests.put('/api/user/profile', json={'name': 'John'})
      if response.status_code == 204:
          print('Profile updated successfully')
              
    3. ตัวอย่างที่ 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 การร้องขอสำเร็จแต่ไม่มีข้อมูลส่งกลับ เมื่อไม่มีข้อมูลที่ต้องการส่งกลับ