> For the complete documentation index, see [llms.txt](https://mysther.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mysther.gitbook.io/knowledge-base/ataques/web-exploitation/http-methods.md).

# HTTP Methods (Tamper)

Também conhecido como `Verbos HTTP,` estes estão presentes nos sistemas web e é importante saber o seu funcionamento, princalmente quando estamos trabalhando com API's.

| MÉTODO HTTP | DESCRIÇÃO                                                                                                                                                                          |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GET`       | Envia os parâmetros via URL, exemplo: `http://site.com.br/index.php?param1=value1&param2=value2`                                                                                   |
| `POST`      | Utilizado para submeter parâmetros via formulário                                                                                                                                  |
| `DELETE`    | Remove um recurso em específico                                                                                                                                                    |
| `PUT`       | O endpoint está sendo requisitado para atualizar (update) alguma informação. Este apaga o registro existente e insere um novo                                                      |
| `PATCH`     | Utilizado para aplicar modificações parciais em um recurso. Diferente do **`PUT`**, este só irá atualizar o que for recebido pelo endpoint e irá manter o restante das informações |
| `HEAD`      | Solicita uma resposta de forma idêntica ao método GET, porém sem conter o corpo da resposta                                                                                        |
| `OPTIONS`   | Utilizado para descrever as opções de comunicação com o recurso de destino                                                                                                         |
| `TRACE`     | Executa um teste de chamada loop-back junto com o caminho para o recurso de destino                                                                                                |
| `CONNECT`   | Estabelece um túnel para o servidor identificado pelo recurso de destino                                                                                                           |

### PUT

Quando o método `PUT` está ativo, as vezes podemos fazer uploads de arquivos com um dos comandos abaixo:

```
curl -d @<file.txt> http://site.com/upload
curl --upload-file <file> http://site.com/upload
curl http://site.com/upload -X POST -F 'file1=@file1.txt' -F 'file2=@file2.txt'
curl -s -X PUT -H "Content-Type: text" -d '<Conteúdo do arquivo>' http://site/uploads/<file_name>
```

###

### TRACE

Quando o `TRACE` está habilitado, podemos passar valores no cabeçalho, que serão retornados no do body da requisição do host alvo, junto.

```bash
curl <ip> -X TRACE -H 'index: value'
```
