Esta é uma pergunta fascinante. As outras respostas aqui são todas especulativas e, em alguns casos, totalmente incorretas. Em vez de escrever minha opinião aqui, fiz algumas pesquisas e encontrei fontes originais que discutem por que excluir e colocar não fazem parte do padrão de formulário HTML5.
Acontece que esses métodos foram incluídos em vários rascunhos iniciais do HTML5 (!), Mas depois foram removidos nos rascunhos subsequentes . A Mozilla também implementou isso em uma versão beta do Firefox também.
Qual foi a justificativa para remover esses métodos do rascunho? O W3C discutiu esse tópico no relatório de bug 10671 . Mike Amundsen argumentou a favor desse apoio:
A execução de PUT e DELETE para modificar recursos no servidor de origem é simples para navegadores da Web modernos usando o objeto XmlHttpRequest. Para interações não programadas do navegador, isso não é tão simples. [...]
Esse padrão é necessário com tanta frequência que várias estruturas / bibliotecas da Web comumente usadas criaram uma solução alternativa "interna". [...]
Outras considerações:
- Usar o POST como um túnel em vez de usar PUT / DELETE pode levar a erros de correspondência de cache (por exemplo, as respostas POST são ajustáveis , as respostas PUT não são (6), as respostas DELETE não são (7))
- O uso de um método não idempotente (POST) para executar uma operação idempotente (PUT / DELETE) complica a recuperação devido a falhas na rede (por exemplo, "É seguro repetir esta ação?").
- [...]
Vale a pena ler o post inteiro.
Tom Wardrop também faz um ponto interessante:
O HTML está inextrincavelmente ligado ao HTTP. HTML é a interface humana do HTTP. Portanto, é automaticamente questionável por que o HTML não suporta todos os métodos relevantes na especificação HTTP. Por que as máquinas podem colocar e excluir recursos, mas os humanos não? [...]
É contraditório que, embora o HTML se esforce ao máximo para garantir a marcação semântica, até o momento não fez esse esforço para garantir solicitações HTTP semânticas.
O bug acabou sendo fechado como Won't Fix por Ian Hickson, com a seguinte lógica:
PUT como um método de formulário não faz sentido, você não deseja colocar uma carga útil de formulário. DELETE só faz sentido se não houver carga útil, portanto também não faz muito sentido nos formulários.
No entanto, esse não é o fim da história! O problema foi encerrado no rastreador de erros do W3C e encaminhado para o rastreador de problemas do HTML Working Group:
https://www.w3.org/html/wg/tracker/issues/195
Neste ponto, parece que a principal razão pela qual não há suporte para esses métodos é simplesmente porque ninguém gastou tempo para escrever uma especificação abrangente para ele.