# Crie regras de Request e Response no Rules Engine

import DocButton from '~/components/webkit/DocButton.vue';

**Rules Engine** é um recurso de **Applications** que permite que você crie soluções sem necessidade de código, aplicando as regras de negócio do seu aplicativo diretamente no edge.

Com a arquitetura de proxy reverso da Azion **Applications**, as regras que você cria serão executadas entre a **Request phase**, que contém dados que o cliente envia para uma origem, ou a **Response phase**, que contém dados da origem que são enviados para o cliente.

<DocButton href="/pt-br/documentacao/produtos/build/applications/rules-engine/" label="Saiba mais sobre Rules Engine" kind="secondary" size="medium" />

---

## Crie uma regra de Request: Rewrite Request

As regras criadas na **Request phase** serão executadas antes que a requisição aos servidores de origem seja concluída. Por exemplo, usando o comportamento **Rewrite Request**, você pode criar uma regra para entregar conteúdo a um usuário a partir de uma URI específica sem que ele precise especificar o caminho exato da origem na requisição.

Para ilustrar esse guia, presuma que o seu objetivo é o de entregar o conteúdo da página `/content/page.html` quando um cliente faz uma requisição para `https://www.domain.com/page`. Para criar uma regra que irá reescrever esta requisição:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Applications**.
2. Selecione a application para qual você deseja criar a regra.
3. Na aba **Main Settings**, habilite o módulo **Application Accelerator**.
4. Clique no botão **Save**.
5. Selecione a aba **Rules Engine**.
6. Clique no botão **+ Rule**.
7. Dê um nome à sua regra e, se necessário, uma descrição.
8. Selecione **Request Phase**.
9. Na seção **Criteria**, configure seus critérios da seguinte forma:
   - If `${uri}` *is equal to* `/page`
   - Este critério irá identificar a URL da requisição pela barra `/` que inicia a URI.
10. Na seção **Behaviors**, adicione o comportamento que você deseja que sua aplicação execute. Nesse caso, **Rewrite Request**.
11. O comportamento selecionado leva um argumento; para redirecionar a requisição para a página:
   - `${uri}content/page.html`
   - Este argumento concatena a variável `${uri}`, cujo valor é`/`, para o caminho da página.
12. Clique no botão **Save** para salvar sua regra.

Agora, quando uma requisição for feita para a URL `https://www.domain.com/page`, os usuários irão visualizar o conteúdo da página `/content/page.html`, sem precisar especificar este endereço no navegador.

---

## Crie uma regra de Response: Filter Response Header

As regras criadas na **Response phase** serão executadas antes que a resposta seja entregue ao cliente. Por exemplo, você pode criar uma regra que irá remover um cabeçalho HTTP da resposta usando o comportamento **Filter Response Header**.

O cabeçalho `Server` armazena informações sobre o servidor que gerou a resposta. Ao remover esse cabeçalho, você impede que clientes recebam informações sobre a infraestrutura da sua aplicação, aumentando sua segurança ao reduzir a quantidade de dados disponíveis para possíveis invasores.

:::note
Tome cuidado ao remover quaisquer cabeçalhos de sua application. Certifique-se de que essa ação não interfira em nenhum padrão ou em diretrizes legais.
:::

Para remover o cabeçalho `Server` da resposta:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Applications**.
2. Selecione a application para qual você deseja criar a regra.
3. Na aba **Main Settings**, habilite o módulo **Application Accelerator**.
4. Clique no botão **Save**.
5. Selecione a aba **Rules Engine**.
6. Clique no botão **+ Rule**.
7. Dê um nome à sua regra e, se necessário, uma descrição.
8. Selecione **Response Phase**.
9. Na seção **Criteria**, configure seus critérios da seguinte forma:
- If `${uri}` *starts with* `/`
- Este critério executará a regra para toda a aplicação.
10. Na seção **Behaviors**, adicione os comportamentos que você deseja executar. Neste caso, **Filter Response Header**.
11. O comportamento selecionado recebe um argumento, que deve ser `Server`.
   > Esse argumento removerá todas as instâncias do cabeçalho `Server` de todas as respostas.
12.  Clique no botão **Save** para salvar sua regra.

A partir desse momento, quando uma requisição for feita ao seu aplicativo, o cabeçalho `Server` será removido da resposta.

---