Contents

    Server response 303 See Other

    HTTP สถานะรหัส 303 (See Other)

    HTTP สถานะรหัส 303 ถูกใช้เพื่อการเปลี่ยนเส้นทางผู้ใช้ไปยัง URI อื่นที่สามารถเข้าถึงทรัพยากรได้ โดยทั่วไปจะใช้ในกรณีที่มีการตอบกลับจาก POST request เพื่อบอกให้ผู้ใช้ทำ GET request ไปยังทรัพยากรที่ต่างออกไป

    303 - See Other

    ลักษณะเฉพาะของสถานะรหัส 303

    • การกำหนดและวัตถุประสงค์: สถานะรหัส 303 ใช้เพื่อบอกให้ผู้ใช้เปลี่ยนเส้นทางไปยัง URI อื่น
    • ความแตกต่างกับสถานะรหัสอื่น:
      • รหัส 302: เปลี่ยนเส้นทางชั่วคราว แต่ยังคงใช้ URI เดิมในอนาคต
      • รหัส 301: เปลี่ยนเส้นทางถาวรไปยัง URI ใหม่

    เมื่อใดควรใช้รหัส 303

    สถานะรหัส 303 ควรใช้ในกรณีต่อไปนี้:

    • หลังจากการส่ง POST request ที่ประสบความสำเร็จ
    • เพื่อป้องกันการส่งข้อมูลซ้ำเมื่อผู้ใช้ทำการรีเฟรชหน้าเว็บ

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

    1. ตัวอย่างที่ 1: การเปลี่ยนเส้นทางหลังจากการลงทะเบียนผู้ใช้ที่ประสบความสำเร็จ
    2. ตัวอย่างที่ 2: การเปลี่ยนเส้นทางหลังจากการส่งแบบฟอร์มความคิดเห็น
    3. ตัวอย่างที่ 3: การเปลี่ยนเส้นทางไปยังหน้าผลลัพธ์การค้นหา

    การแก้ไขข้อผิดพลาดที่เกี่ยวข้องกับรหัส 303 ในภาษาโปรแกรมต่างๆ

    ภาษา ตัวอย่างโค้ด วิธีหลีกเลี่ยงข้อผิดพลาด
    PHP
    header("Location: http://example.com/another-page", true, 303);
    exit();
    ใช้ฟังก์ชัน header() อย่างถูกต้องและเรียก exit() เพื่อสิ้นสุดสคริปต์
    Python (Flask)
    from flask import Flask, redirect
    
    app = Flask(__name__)
    
    @app.route('/submit', methods=['POST'])
    def submit():
        # Logic for handling form
        return redirect('/success', code=303)
    ตรวจสอบให้แน่ใจว่ารหัสสถานะถูกกำหนดอย่างชัดเจน
    Java (Spring)
    @PostMapping("/submit")
    public String handleSubmit() {
        // Logic for handling form
        return "redirect:/success"; // รหัส 303 จะถูกใช้โดยอัตโนมัติ
    }
    ตรวจสอบให้แน่ใจว่าวิธีการส่งคืนสตริงที่มีคำขึ้นต้น "redirect:"
    การใช้สถานะรหัส 303 เป็นแนวทางที่ดีในการจัดการกับการเปลี่ยนเส้นทางและปรับปรุงประสบการณ์ของผู้ใช้ การใช้งานที่ถูกต้องช่วยหลีกเลี่ยงปัญหาการส่งข้อมูลซ้ำและทำให้การโต้ตอบกับ API มีความคาดเดาได้มากขึ้น