<!-- review: finished -->

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

# Headers

Permite añadir los campos de cabecera `Expires` y `Cache-Control`, y campos arbitrarios, a una cabecera de respuesta.

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

## Ejemplo de configuración

```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>

## Directivas

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

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

### add_header

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `add_header` name value [`always`];    |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | —                                      |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location, if in location |

Añade el campo especificado a una cabecera de respuesta siempre que el código de respuesta sea igual a 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307, o 308. El valor del parámetro puede contener variables.

Puede haber varias directivas `add_header`. Estas directivas se heredan del nivel de configuración anterior si y solo si no hay directivas `add_header` definidas en el nivel actual.

Si se especifica el parámetro `always`, el campo de cabecera se añadirá independientemente del código de respuesta.

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

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

### add_trailer

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `add_trailer` name value [`always`];   |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | —                                      |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location, if in location |

Añade el campo especificado al final de una respuesta siempre que el código de respuesta sea igual a 200, 201, 206, 301, 302, 303, 307, o 308. El valor del parámetro puede contener variables.

Puede haber varias directivas `add_trailer`. Estas directivas se heredan del nivel de configuración anterior si y solo si no hay directivas `add_trailer` definidas en el nivel actual.

Si se especifica el parámetro `always`, el campo especificado se añadirá independientemente del código de respuesta.

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

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

### expires

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

Habilita o deshabilita la adición o modificación de los campos de cabecera de respuesta `Expires` y `Cache-Control` siempre que el código de respuesta sea igual a 200, 201, 204, 206, 301, 302, 303, 304, 307, o 308. El parámetro puede ser un [tiempo](https://es.angie.software//angie/docs/configuration/configfile.md#syntax) positivo o negativo.

El tiempo en el campo `Expires` se calcula como la suma del tiempo actual y el tiempo especificado en la directiva. Si se usa el parámetro `modified`, entonces el tiempo se calcula como la suma del tiempo de modificación del archivo y el tiempo especificado en la directiva.

Además, es posible especificar una hora del día usando el prefijo "@":

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

El contenido del campo `Cache-Control` depende del signo del tiempo especificado:

* el tiempo es negativo — "Cache-Control: no-cache".
* el tiempo es positivo o cero — "Cache-Control: max-age=\`t\`", donde t es el tiempo especificado en la directiva, en segundos.

| `epoch`   | establece `Expires` al valor "Thu, 01 Jan 1970 00:00:01 GMT", y `Cache-Control` a "no-cache".             |
|-----------|-----------------------------------------------------------------------------------------------------------|
| `max`     | establece `Expires` al valor "Thu, 31 Dec 2037 23:55:55 GMT", y `Cache-Control` a 10 años.                |
| `off`     | deshabilita la adición o modificación de los campos de cabecera de respuesta `Expires` y `Cache-Control`. |

El valor del último parámetro puede contener variables:

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

expires $expires;
```
