นี่เป็นคำถามที่น่าสนใจ คำตอบอื่น ๆ ที่นี่ล้วนเป็นการเก็งกำไรและในบางกรณีการถอนออกไม่ถูกต้อง แทนที่จะเขียนความคิดเห็นของฉันที่นี่ฉันได้ทำการวิจัยและพบแหล่งต้นฉบับที่กล่าวถึงสาเหตุที่ลบและวางไม่ได้เป็นส่วนหนึ่งของมาตรฐานฟอร์ม HTML5
ตามที่ปรากฎวิธีการเหล่านี้จะรวมอยู่ในร่าง HTML5 ช่วงต้น (!) หลายต้นแต่ถูกลบออกในภายหลังในร่างถัดไป Mozilla ได้นำสิ่งนี้ไปใช้ใน Firefox เบต้าด้วยเช่นกัน
เหตุผลในการลบวิธีการเหล่านี้ออกจากร่างคืออะไร ของ W3C กล่าวถึงหัวข้อนี้ในรายงานข้อบกพร่อง 10671 Mike Amundsen แย้งกับการสนับสนุนนี้:
การดำเนินการ PUT และ DELETE เพื่อแก้ไขทรัพยากรบนเซิร์ฟเวอร์ต้นทางนั้นตรงไปข้างหน้าสำหรับเว็บเบราว์เซอร์ที่ทันสมัยโดยใช้วัตถุ XmlHttpRequest สำหรับการโต้ตอบกับเบราว์เซอร์ที่ไม่ได้กำหนดสิ่งนี้ไม่ง่ายเลย [ ... ]
รูปแบบนี้จำเป็นต้องใช้บ่อยครั้งที่เว็บเฟรมเวิร์ก / ไลบรารีที่ใช้กันทั่วไปหลายรายการได้สร้างการทำงานแบบ "มีอยู่" ภายใน [ ... ]
ข้อควรพิจารณาอื่น ๆ :
- การใช้โพสต์เป็นอุโมงค์แทนการใช้ใส่ / ลบสามารถนำไปสู่การแคชผิดพลาดการแข่งขัน (เช่นการตอบสนอง POST มีcachableใส่การตอบสนองไม่ได้ (6), ลบการตอบกลับไม่ได้ (7))
- การใช้วิธีที่ไม่ใช่ idempotent (POST) เพื่อดำเนินการ idempotent (PUT / DELETE) ทำให้การกู้คืนมีความซับซ้อนเนื่องจากความล้มเหลวของเครือข่าย (เช่น "ปลอดภัยต่อการทำซ้ำการกระทำนี้หรือไม่")
- [ ... ]
มันคุ้มค่าที่จะอ่านโพสต์ทั้งหมดของเขา
Tom Wardrop ทำให้ประเด็นที่น่าสนใจ:
HTML ถูกผูกมัดกับ HTTP อย่างแยกไม่ออก HTML เป็นส่วนต่อประสานกับมนุษย์ของ HTTP ดังนั้นจึงเป็นเรื่องที่น่าสงสัยโดยอัตโนมัติว่าทำไม HTML ไม่สนับสนุนวิธีการที่เกี่ยวข้องทั้งหมดในข้อมูลจำเพาะ HTTP เหตุใดเครื่องจักรจึงสามารถใส่ทรัพยากร PUT และ DELETE แต่มนุษย์ไม่สามารถทำได้ [ ... ]
เป็นเรื่องที่ขัดแย้งกันว่าในขณะที่ HTML มีความยาวมากเพื่อให้แน่ใจว่ามาร์กเกอร์เชิงความหมายจะต้องมีความพยายามในการรับรองคำขอ HTTP ความหมาย
ในที่สุดข้อผิดพลาดก็ถูกปิดในที่สุดเนื่องจากจะไม่แก้ไขโดย Ian Hickson โดยมีเหตุผลดังต่อไปนี้:
ใส่ PUT เป็นวิธีการแบบไม่มีเหตุผลคุณไม่ต้องการใส่แบบฟอร์ม payload ลบเหมาะสมเท่านั้นหากไม่มีน้ำหนักบรรทุกดังนั้นจึงไม่สมเหตุสมผลกับรูปแบบเช่นกัน
อย่างไรก็ตามนั่นไม่ใช่จุดจบของเรื่องราว! ปัญหาที่ถูกปิดในบั๊ก W3C และเพิ่มขึ้นไป HTML คณะทำงานติดตามปัญหา:
https://www.w3.org/html/wg/tracker/issues/195
ณ จุดนี้ดูเหมือนว่าเหตุผลหลักที่ว่าทำไมไม่มีการสนับสนุนสำหรับวิธีการเหล่านี้ก็คือว่าไม่มีใครได้ใช้เวลาในการเขียนข้อกำหนดที่ครอบคลุมสำหรับมัน