C'est une question fascinante. Les autres réponses ici sont toutes spéculatives et, dans certains cas, totalement inexactes. Au lieu d'écrire mon opinion ici, j'ai en fait effectué des recherches et découvert des sources originales expliquant pourquoi supprimer et mettre ne font pas partie du format standard HTML5.
Il se trouve que ces méthodes ont été incluses dans plusieurs versions préliminaires de HTML5 (!), Mais ont ensuite été supprimées dans les versions suivantes . Mozilla l'avait également implémenté dans une version bêta de Firefox .
Pour quelle raison a-t-on retiré ces méthodes du projet? Le W3C a abordé ce sujet dans le rapport de bogue 10671 . Mike Amundsen a plaidé en faveur de ce soutien:
L'exécution de PUT et DELETE pour modifier les ressources sur le serveur d'origine est une opération simple pour les navigateurs Web modernes utilisant l'objet XmlHttpRequest. Pour les interactions de navigateur sans script, ce n'est pas si simple. [...]
Ce modèle est si souvent nécessaire que plusieurs frameworks / bibliothèques Web couramment utilisés ont créé une solution de contournement "intégrée". [...]
Autres considérations:
- L'utilisation de POST en tant que tunnel au lieu d'utiliser PUT / DELETE peut entraîner des correspondances de cache (par exemple, les réponses POST peuvent être mises en cache , les réponses PUT ne sont pas (6), les réponses DELETE ne sont pas (7))
- L'utilisation d'une méthode non idempotente (POST) pour effectuer une opération idempotente (PUT / DELETE) complique la récupération en raison de défaillances du réseau (par exemple, "Est-il sûr de répéter cette action?").
- [...]
Cela vaut la peine de lire l'intégralité de son post.
Tom Wardrop fait également une remarque intéressante:
HTML est inextricablement lié à HTTP. HTML est l'interface humaine de HTTP. Il est donc automatiquement discutable de savoir pourquoi HTML ne supporte pas toutes les méthodes pertinentes de la spécification HTTP. Pourquoi les machines peuvent-elles PUT et SUPPRIMER des ressources alors que les humains ne le peuvent pas? [...]
Il est contradictoire que, bien que le HTML s'efforce de garantir le balisage sémantique, il n'a jusqu'à présent fait aucun effort pour garantir les requêtes HTTP sémantiques.
Le bogue a finalement été fermé par Ian Hickson, car il ne résout pas le problème , avec les raisons suivantes:
PUT en tant que méthode de formulaire n'a aucun sens, vous ne voudriez pas PUT une charge de formulaire. DELETE n’a de sens que s’il n’ya pas de charge utile, cela n’a donc pas beaucoup de sens avec les formulaires non plus.
Cependant, ce n'est pas la fin de l'histoire! Le problème a été fermé dans le suivi des bogues du W3C et transmis au suivi des problèmes du groupe de travail HTML:
https://www.w3.org/html/wg/tracker/issues/195
À ce stade, il semble que la principale raison pour laquelle rien ne justifie ces méthodes est simplement que personne n’a pris le temps de rédiger une spécification complète à ce sujet.