---
name: azion-armazene-em-cache-respostas-de-post-e-options
description: >-
  Armazene em cache a resposta de uma requisição POST ou OPTIONS em uma aplicação e aplique o cache setting com uma regra do Rules Engine.
---

# Armazene em cache respostas de POST e OPTIONS

[Application Accelerator](/pt-br/documentacao/plataforma/applications/#application-accelerator) libera o cache de respostas `POST` e `OPTIONS`, além das requisições `GET` e `HEAD` que uma aplicação armazena em cache nativamente. Você seleciona os métodos em um cache setting a partir de Azion Console e depois aplica esse cache setting com o [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/).

Um objeto `POST` em cache não compartilha a [cache key](/pt-br/documentacao/plataforma/applications/cache/cache-keys/) com a resposta `GET` do mesmo path. A Azion adiciona o método como prefixo à key de qualquer requisição diferente de `GET` ou `HEAD`. Para um objeto `POST` ou `OPTIONS` em cache, a key também acrescenta `@@` e o hash MD5 do corpo da requisição. Uma requisição `OPTIONS` para `https://static.yourdomain.com/page` é armazenada sob a key `optionshttpsstatic.yourdomain.com/page`. Um `POST` para um path dinâmico é armazenado sob `httpsdynamic.yourdomain.com/path@@md5_of_post_arguments`.

Um corpo de `POST` que varia a cada requisição produz, portanto, um objeto em cache por requisição. Para o que uma variação custa, consulte [Variação de cache](/pt-br/documentacao/plataforma/applications/application-accelerator/variacao-de-cache/).

---

## Pré-requisitos

- Uma aplicação. Para criar uma, consulte [Primeiros passos com Applications](/pt-br/documentacao/plataforma/applications/primeiros-passos/).
- Acesso a Azion Console. Consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).
- Application Accelerator pode gerar custos relacionados ao uso. Para as tarifas, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#application-accelerator).

---

## Ative Application Accelerator

O módulo vem desativado por padrão, e um cache setting armazena uma resposta `POST` ou `OPTIONS` apenas enquanto o módulo está ativo. Para ativá-lo:

1. **Abra a aplicação**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação**.

2. **Ative o módulo**

   Na aba **Main Settings**, na seção **Modules**, ative **Application Accelerator**.

3. **Selecione Save**

A aplicação roda com Application Accelerator, e os cache settings dela podem selecionar os métodos `POST` e `OPTIONS`.

---

## Armazene em cache as respostas de requisições POST

Uma aplicação serve uma API de busca em `/api/search`. O endpoint responde a uma requisição `POST` cujo corpo carrega os termos da busca, e os resultados mudam a cada 30 segundos. Para armazenar um objeto por corpo e expirá-lo nesse mesmo intervalo:

1. **Abra a aba Cache Settings**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** e vá para a aba **Cache Settings**.

2. **Selecione + Cache**

3. **Nomeie o cache setting**

   Em **Name**, digite um nome que identifique o cache setting. Por exemplo: `search-post`.

4. **Defina o Max Age**

   Em **Cache**, selecione *Override cache behavior* e defina **Max Age** como `30`.

5. **Selecione o método POST**

   Em **Application Accelerator**, abra **Cache vary by Method** e marque o checkbox **POST**.

6. **Selecione Save**

O cache setting aparece na aba **Cache Settings**. Ele armazena a resposta de uma requisição `POST` assim que uma regra o aplica.

**Cache vary by Method** carrega dois checkboxes, **POST** e **OPTIONS**. Para armazenar em cache respostas `OPTIONS`, marque **OPTIONS** no mesmo controle; um cache setting pode carregar os dois métodos. A Azion API define os mesmos métodos com o campo `cache_vary_by_method` de um cache setting, documentado em [Configurações do Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/configuracoes/).

Um cache setting entra em vigor apenas quando uma regra o aplica. Para aplicar este à URI `/api/search`:

1. **Vá para a aba Rules Engine**

2. **Selecione + Rule**

3. **Nomeie a regra**

   Digite um nome para a regra. Por exemplo: `search-post rule`.

4. **Selecione Request Phase**

5. **Selecione a variável na seção Criteria**

   Na seção **Criteria**, selecione a variável `${uri}`.

6. **Selecione starts with como operador de comparação**

7. **Digite o argumento**

   Digite `/api/search` como argumento.

8. **Na seção Behaviors, selecione Set Cache Policy**

9. **Selecione o cache setting que você criou**

10. **Selecione Save**

As requisições cuja URI começa com `/api/search` carregam o cache setting. A Azion armazena um objeto por corpo de requisição e mantém cada objeto por 30 segundos. Uma nova regra leva alguns minutos para propagar.

> **nota**
>
> Antes de um cache setting selecionar **POST**, uma requisição `POST` não registra status de cache: o header `X-Cache` carrega `-`, porque o conteúdo está restrito de permanecer em cache. Para ler o header em uma requisição, consulte [Verificar indicadores de cache com o ModHeader](/pt-br/documentacao/guias/performance-e-confiabilidade/cache-e-purge/verificar-tempo-de-cache-da-pagina/).

Um objeto `POST` ou `OPTIONS` em cache expira com um purge por cache key que lista cada variação, ou com um purge por wildcard terminado em `@@*`. Para os tipos de purge, consulte [Real-Time Purge](/pt-br/documentacao/plataforma/applications/cache/real-time-purge/#purgue-conteudo-que-varia).

---

## Próximos passos

- [Variação de cache](/pt-br/documentacao/plataforma/applications/application-accelerator/variacao-de-cache.md): O que o corpo da requisição acrescenta à cache key e o que uma variação custa em objetos armazenados.
- [Configurações do Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/configuracoes.md): Cada campo que o módulo acrescenta a um cache setting, com os valores e os padrões.
- [Real-Time Purge](/pt-br/documentacao/plataforma/applications/cache/real-time-purge.md): Expire um objeto POST em cache com um purge por cache key ou um purge por wildcard.
- [Configure a Advanced Cache Key](/pt-br/documentacao/guias/performance-e-confiabilidade/cache-e-purge/advanced-cache-key.md): Varie um objeto em cache por um argumento de query string ou por um cookie.
