---
url: https://docs.ogmabox.com/pt/app/replay.md
description: Crie, edite e reenvie requisições HTTP no Reenvio do Ogma.
---

# Reenvio {#replay}

Reenvio permite modificar e reenviar qualquer requisição HTTP e acompanha cada tentativa para que você possa comparar como as alterações afetam a resposta.

## Criar uma sessão {#creating-a-session}

Uma sessão de Reenvio contém uma requisição e suas tentativas. Maneiras comuns de criar uma sessão:

* Selecione uma requisição no **Histórico HTTP** e escolha **Enviar para Reenvio**.
* Selecione uma linha de resultados na **Automação** e escolha **Enviar para Reenvio**.
* Abra **Reenvio** e crie uma sessão vazia para colar ou digitar uma requisição bruta.
* Use **Importar** na barra de ferramentas de Sessões para gerar sessões a partir de uma definição de API.

Cada sessão é independente. Abra várias sessões para trabalhar em requisições diferentes ao mesmo tempo.

## Editor de requisições {#the-request-editor}

O editor mostra a requisição HTTP completa: método, URL, cabeçalhos e corpo. Edite qualquer campo diretamente.

Escolha o modo de edição de requisição para o tipo de teste que estiver realizando:

| Aba | O que você pode editar |
| --- | --- |
| Formatado | Texto HTTP com destaque de sintaxe e corpos formatados quando compatíveis. A formatação passa a fazer parte da requisição somente quando você edita essa visualização. |
| Bruto | Texto de transmissão HTTP/1.x editável, incluindo escapes CR/LF visíveis. Envia bytes exatos em vez de corrigir uma delimitação incorreta da mensagem. |
| Hex | Edição em nível de bytes da requisição HTTP/1.x completa, incluindo conteúdo binário. |
| Formulário | Edição por campos quando o corpo tem uma codificação de formulário compatível. |

A barra de ferramentas inclui controles de método, HTTP/TLS, alvo, redirecionamento, Content-Length, tempo limite e origem de cookies. **Parâmetros de consulta** permite adicionar, desativar ou remover parâmetros de consulta. Use **Carregar corpo** quando um corpo capturado grande ainda não tiver sido carregado no editor.

Bruto e Hex ignoram deliberadamente a expansão de variáveis, substituição de cookies, redirecionamentos e regras de Localizar e substituir para que os testes de requisições malformadas mantenham seus bytes exatos. São transportes HTTP/1.x, não uma forma de construir quadros HTTP/2 brutos. Use o editor estruturado para reenvios normais e inspecione a tentativa resultante ao verificar o que foi enviado.

## Enviar e comparar tentativas {#sending-and-comparing-attempts}

Clique em **Enviar** para enviar a requisição. A resposta aparece no painel à direita. Cada envio é armazenado como uma tentativa na lista **Tentativas** abaixo do editor.

Expanda **Tentativas** se estiver recolhida. Selecionar uma tentativa carrega a requisição e a resposta dessa tentativa, não apenas a resposta mais recente. Os controles de tentativa incluem abrir na Automação, excluir uma tentativa individual, exportar CSV e ocultar tentativas da visualização. Ocultá-las não é o mesmo que excluí-las.

Use **Abrir esta resposta no Comparador** para inspecionar diferenças entre respostas na ferramenta de comparação. Altere um parâmetro por vez para que a diferença observada possa ser atribuída a essa alteração.

## Variáveis de ambiente {#environment-variables}

Use {{env.VAR}} para referenciar variáveis de ambiente, coleção ou sessão. Defina valores do espaço de trabalho/globais e do projeto em **Ambiente**, depois use variáveis de coleção ou sessão para substituições locais. Ative a interpolação de variáveis no modelo do corpo se quiser expandi-las dentro do corpo da requisição; caso contrário, seus bytes são preservados.

As variáveis são úteis para:

* Tokens que mudam entre sessões de teste
* IDs de conta que você troca para testar o controle de acesso
* Hosts que você alterna entre homologação e produção

Nos envios estruturados, o valor mais específico prevalece: sessão, coleção, projeto e, por fim, global. Variáveis ausentes produzem um erro. Consulte [Ambiente](./environment.md) para transformações e valores dinâmicos.

## Cookies e redirecionamentos {#cookies-and-redirects}

Escolha **Cabeçalhos da requisição** para manter o cabeçalho Cookie da sessão, **Repositório de cookies** para usar os cookies correspondentes do repositório do projeto, ou **Navegador Ogma** para usar os cookies correspondentes do navegador integrado. Essas opções se aplicam aos envios estruturados; Bruto e Hex preservam os bytes fornecidos.

Use **Editar repositório de cookies do projeto** para gerenciar cookies salvos. Ao seguir redirecionamentos, o Ogma segue no máximo 10 e remove os cabeçalhos Authorization e Cookie quando a origem muda. Verifique a autenticação após uma mudança de origem, em vez de presumir que as credenciais foram encaminhadas.

## Coleções {#collections}

As coleções agrupam sessões relacionadas. Crie uma coleção para organizar todas as requisições de um recurso ou cenário de teste específico.

As variáveis de coleção se aplicam a todas as sessões dessa coleção, permitindo definir um token uma vez em vez de defini-lo para cada sessão.

Renomeie sessões com **F2** ou pelo menu de contexto da sessão. Mova sessões usando **Mover para coleção** ou arrastando e soltando, e reordene-as dentro de uma coleção. Coleções podem conter subcoleções e podem ser exportadas/importadas como JSON. **Fechar acima** e **Fechar abaixo** se referem à lista vertical de sessões.

## Importar definições de API {#importing-api-definitions}

1. Clique em **Importar** na barra de ferramentas de Sessões.
2. Selecione um documento OpenAPI 3.x autocontido, uma coleção Postman v2.1, um resultado de introspecção GraphQL ou um documento WSDL (máximo de 10 MB).
3. Para introspecção GraphQL, forneça o endpoint HTTP(S) quando solicitado.
4. Revise a coleção e as requisições geradas antes de enviar: URLs de destino, parâmetros, exemplos de corpo e valores de autenticação podem exigir alterações para seu ambiente.

A importação gera requisições editáveis; não inicia uma varredura. Referências a esquemas externos não são baixadas, então inclua as referências no documento de entrada. Os caminhos importados também aparecem em Endpoints com uma especificação de API como origem, em vez de uma entrada do Histórico HTTP. A reflexão gRPC não é um dos formatos de importação compatíveis.

## Sequências {#sequences}

Use o painel **Sequências** para selecionar pelo menos duas sessões de Reenvio existentes, nomear a sequência e organizar sua ordem de execução. Uma sequência envia requisições reais, então use requisições de referência conhecidas e verifique o estado resultante em vez de tratar a conclusão como prova de sucesso. Criar uma sequência não descobre automaticamente dependências de autenticação ou tokens entre suas etapas.

## Enviar para Automação {#sending-to-automate}

Quando quiser executar variações de uma requisição em escala, selecione **Enviar para Automação** na sessão. O Ogma abre Automação com a requisição pré-carregada para que você possa definir listas de payloads e executar a campanha.

## Reenvio WebSocket {#websocket-replay}

Reenvio WebSocket é uma visualização separada com estado de conexão e uma linha do tempo de mensagens enviadas/recebidas. No Histórico WebSocket, use **Enviar para Reenvio WS**, conecte e envie as mensagens de inicialização/autenticação exigidas em nível de aplicação antes de testar um quadro modificado. Consulte [Reenvio WebSocket](./ws-replay.md).

## Assistência de IA {#ai-assist}

Use **Analisar com IA** na resposta para solicitar a análise da troca selecionada. Revise os testes e interpretações sugeridos; a explicação do assistente não é prova independente de uma vulnerabilidade.

## Páginas relacionadas {#related-pages}

* [Automação](./automate.md)
* [Reenvio WebSocket](./ws-replay.md)
* [Ambiente](./environment.md)
* [Achados](./findings.md)
