Ini pertanyaan yang menarik. Jawaban lain di sini semuanya spekulatif, dan dalam beberapa kasus tidak benar. Alih-alih menulis pendapat saya di sini, saya malah melakukan riset dan menemukan sumber-sumber asli yang membahas mengapa delete and put bukan bagian dari standar bentuk HTML5.
Ternyata, metode ini dimasukkan dalam beberapa, konsep HTML5 awal (!), Tetapi kemudian dihapus dalam konsep berikutnya . Mozilla sebenarnya telah mengimplementasikan ini dalam Firefox beta juga.
Apa alasan untuk menghapus metode ini dari konsep? W3C membahas topik ini dalam laporan bug 10671 . Mike Amundsen berpendapat mendukung dukungan ini:
Menjalankan PUT dan DELETE untuk memodifikasi sumber daya pada server asal adalah mudah untuk browser Web modern menggunakan objek XmlHttpRequest. Untuk interaksi browser tanpa naskah ini tidak sesederhana itu. [...]
Pola ini diperlukan begitu sering sehingga beberapa kerangka kerja / pustaka Web yang umum digunakan telah menciptakan "built-in" work-around. [...]
Pertimbangan lain:
- Menggunakan POST sebagai terowongan alih-alih menggunakan PUT / HAPUS dapat mengarah pada caching yang tidak cocok (mis. Respons POST dapat di- cachable , respons PUT tidak (6), respons DELETE tidak (7))
- Menggunakan metode non-idempoten (POST) untuk melakukan operasi idempoten (PUT / DELETE) mempersulit pemulihan karena kegagalan jaringan (mis. "Apakah aman untuk mengulangi tindakan ini?").
- [...]
Perlu membaca seluruh posnya.
Tom Wardrop juga membuat poin yang menarik:
HTML terikat dengan HTTP. HTML adalah antarmuka manusia HTTP. Karena itu, secara otomatis dipertanyakan mengapa HTML tidak mendukung semua metode yang relevan dalam spesifikasi HTTP. Mengapa mesin PUT dan HAPUS sumber daya, tetapi manusia tidak bisa? [...]
Ini kontradiktif bahwa sementara HTML berusaha keras untuk memastikan markup semantik, ia sampai saat ini tidak melakukan upaya untuk memastikan permintaan HTTP semantik.
Bug itu akhirnya ditutup sebagai Tidak Akan Diperbaiki oleh Ian Hickson, dengan alasan berikut:
PUT sebagai metode formulir tidak masuk akal, Anda tidak ingin PUT formulir muatan. HAPUS hanya masuk akal jika tidak ada payload, jadi tidak masuk akal dengan formulir juga.
Namun, itu bukan akhir dari cerita! Masalah ini ditutup pada pelacak bug W3C dan meningkat ke pelacak masalah Kelompok Kerja HTML:
https://www.w3.org/html/wg/tracker/issues/195
Pada titik ini, tampaknya alasan utama mengapa tidak ada dukungan untuk metode ini adalah karena tidak ada yang meluangkan waktu untuk menulis spesifikasi komprehensif untuk itu.