<!-- review: finished -->

<a id="http-headers"></a>

# Headers

Permite adicionar os campos de cabeçalho `Expires` e `Cache-Control`, e campos arbitrários, a um cabeçalho de resposta.

<a id="configuration-example-22"></a>

## Exemplo de Configuração

```nginx
expires    24h;
expires    modified +24h;
expires    @24h;
expires    0;
expires    -1;
expires    epoch;
expires    $expires;
add_header Cache-Control private;
```

<a id="directives-23"></a>

## Diretivas

<a id="index-0"></a>

<a id="add-header"></a>

### add_header

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `add_header` name value [`always`];    |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | —                                      |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location |

Adiciona o campo especificado a um cabeçalho de resposta desde que o código de resposta seja igual a 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 ou 308. O valor do parâmetro pode conter variáveis.

Pode haver várias diretivas `add_header`. Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas `add_header` definidas no nível atual.

Se o parâmetro `always` for especificado, o campo de cabeçalho será adicionado independentemente do código de resposta.

<a id="index-1"></a>

<a id="add-trailer"></a>

### add_trailer

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `add_trailer` name value [`always`];   |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | —                                      |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location |

Adiciona o campo especificado ao final de uma resposta desde que o código de resposta seja igual a 200, 201, 206, 301, 302, 303, 307 ou 308. O valor do parâmetro pode conter variáveis.

Pode haver várias diretivas `add_trailer`. Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas `add_trailer` definidas no nível atual.

Se o parâmetro `always` for especificado, o campo especificado será adicionado independentemente do código de resposta.

<a id="index-2"></a>

<a id="expires"></a>

### expires

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `expires` [`modified`] time;<br/><br/>`expires` `epoch` | `max` | `off`;   |
|-------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| Padrão                                                                                    | `expires off;`                                                             |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location                                     |

Habilita ou desabilita a adição ou modificação dos campos de cabeçalho de resposta `Expires` e `Cache-Control` desde que o código de resposta seja igual a 200, 201, 204, 206, 301, 302, 303, 304, 307 ou 308. O parâmetro pode ser um [tempo](https://pt.angie.software//angie/docs/configuration/configfile.md#syntax) positivo ou negativo.

O tempo no campo `Expires` é calculado como a soma do tempo atual e o tempo especificado na diretiva. Se o parâmetro `modified` for usado, então o tempo é calculado como a soma do tempo de modificação do arquivo e o tempo especificado na diretiva.

Além disso, é possível especificar um horário do dia usando o prefixo "@":

```nginx
expires @15h30m;
```

O conteúdo do campo `Cache-Control` depende do sinal do tempo especificado:

* tempo é negativo — "Cache-Control: no-cache".
* tempo é positivo ou zero — "Cache-Control: max-age=\`t\`", onde t é o tempo especificado na diretiva, em segundos.

| `epoch`   | define `Expires` para o valor "Thu, 01 Jan 1970 00:00:01 GMT", e `Cache-Control` para "no-cache".   |
|-----------|-----------------------------------------------------------------------------------------------------|
| `max`     | define `Expires` para o valor "Thu, 31 Dec 2037 23:55:55 GMT", e `Cache-Control` para 10 anos.      |
| `off`     | desabilita a adição ou modificação dos campos de cabeçalho de resposta `Expires` e `Cache-Control`. |

O valor do último parâmetro pode conter variáveis:

```nginx
map $sent_http_content_type $expires {
    default         off;
    application/pdf 42d;
    ~image/         max;
}

expires $expires;
```
