Das ist eine faszinierende Frage. Die anderen Antworten hier sind alle spekulativ und in einigen Fällen völlig falsch. Anstatt meine Meinung hier zu schreiben, habe ich ein paar Nachforschungen angestellt und Originalquellen gefunden, die erläutern, warum Löschen und Einfügen nicht Teil des HTML5-Formularstandards sind.
Wie sich herausstellt, sind diese Methoden wurden in enthalten mehrere, frühe HTML5 Entwürfe (!), Wurden aber später in den entfernten folgenden Entwürfen . Mozilla hatte dies auch in einer Firefox-Beta implementiert .
Was war der Grund, diese Methoden aus dem Entwurf zu entfernen? Das W3C hat dieses Thema im Fehlerbericht 10671 diskutiert . Mike Amundsen sprach sich für diese Unterstützung aus:
Das Ausführen von PUT und DELETE zum Ändern von Ressourcen auf dem Ursprungsserver ist für moderne Webbrowser mit dem XmlHttpRequest-Objekt unkompliziert. Für unskriptierte Browserinteraktionen ist dies nicht so einfach. [...]
Dieses Muster ist so oft erforderlich, dass mehrere häufig verwendete Web-Frameworks / -Bibliotheken eine "integrierte" Problemumgehung erstellt haben. [...]
Andere Überlegungen:
- Die Verwendung von POST als Tunnel anstelle von PUT / DELETE kann zu Caching- Abweichungen führen (z. B. POST-Antworten können zwischengespeichert werden , PUT-Antworten sind nicht (6), DELETE-Antworten sind nicht (7)).
- Die Verwendung einer nicht-idempotenten Methode (POST) zur Durchführung einer idempotenten Operation (PUT / DELETE) erschwert die Wiederherstellung aufgrund von Netzwerkfehlern (z. B. "Ist es sicher, diese Aktion zu wiederholen?").
- [...]
Es lohnt sich, seinen gesamten Beitrag zu lesen.
Tom Wardrop macht auch einen interessanten Punkt:
HTML ist untrennbar mit HTTP verbunden. HTML ist die menschliche Schnittstelle von HTTP. Es ist daher automatisch fraglich, warum HTML nicht alle relevanten Methoden in der HTTP-Spezifikation unterstützt. Warum können Maschinen Ressourcen PUT und DELETE, Menschen jedoch nicht? [...]
Es ist widersprüchlich, dass HTML zwar große Anstrengungen unternimmt, um ein semantisches Markup sicherzustellen, aber bislang keine derartigen Anstrengungen unternommen hat, um semantische HTTP-Anforderungen sicherzustellen.
Der Fehler wurde schließlich von Ian Hickson als Won't Fix geschlossen.
PUT als Formularmethode macht keinen Sinn, Sie möchten keine Formular-Payload PUT. DELETE ist nur dann sinnvoll, wenn keine Payload vorhanden ist. Daher ist es auch bei Formularen nicht sinnvoll.
Dies ist jedoch noch nicht das Ende der Geschichte! Das Problem wurde im W3C-Bug-Tracker geschlossen und zum HTML Working Group-Issue-Tracker eskaliert :
https://www.w3.org/html/wg/tracker/issues/195
Derzeit scheint der Hauptgrund, warum diese Methoden nicht unterstützt werden, darin zu liegen, dass sich niemand die Zeit genommen hat, eine umfassende Spezifikation dafür zu schreiben.