

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration d'en-têtes personnalisés
<a name="setting-custom-headers"></a>

Il existe deux manières de spécifier des en-têtes HTTP personnalisés pour une application Amplify. Vous pouvez spécifier des en-têtes dans la console Amplify ou vous pouvez spécifier des en-têtes en téléchargeant et en modifiant le fichier d'une application et en `customHttp.yml` l'enregistrant dans le répertoire racine de votre projet.

**Pour définir des en-têtes personnalisés pour une application et les enregistrer dans la console**

1. Connectez-vous à la console [Amplify AWS Management Console](https://console.aws.amazon.com/amplify/) et ouvrez-la.

1. Choisissez l'application pour laquelle vous souhaitez définir des en-têtes personnalisés.

1. Dans le volet de navigation, choisissez **Hosting**, puis **Custom headers.**

1. Sur la page **En-têtes personnalisés**, choisissez **Modifier**.

1. Dans la fenêtre **Modifier les en-têtes personnalisés**, entrez les informations relatives à vos en-têtes personnalisés en utilisant le format [YAML d'en-tête personnalisé](custom-header-YAML-format.md).

   1. Pour`pattern`, entrez le modèle correspondant.

   1. Pour`key`, entrez le nom de l'en-tête personnalisé.

   1. Pour`value`, entrez la valeur de l'en-tête personnalisé.

1. Choisissez **Enregistrer**.

1. Redéployez l'application pour appliquer les nouveaux en-têtes personnalisés.
   + Pour une CI/CD application, accédez à la branche à déployer et choisissez **Redéployer cette version**. Vous pouvez également effectuer une nouvelle compilation à partir de votre dépôt Git.
   + Pour une application à déploiement manuel, déployez à nouveau l'application dans la console Amplify.

**Pour définir des en-têtes personnalisés pour une application et les enregistrer à la racine de votre référentiel**

1. Connectez-vous à la console [Amplify AWS Management Console](https://console.aws.amazon.com/amplify/) et ouvrez-la.

1. Choisissez l'application pour laquelle vous souhaitez définir des en-têtes personnalisés.

1. Dans le volet de navigation, choisissez **Hosting**, puis **Custom headers.**

1. Sur la page **des en-têtes personnalisés**, choisissez **Download YML**.

1. Ouvrez le `customHttp.yml` fichier téléchargé dans l'éditeur de code de votre choix et entrez les informations relatives à vos en-têtes personnalisés en utilisant le format [YAML d'en-tête personnalisé](custom-header-YAML-format.md).

   1. Pour`pattern`, entrez le modèle correspondant.

   1. Pour`key`, entrez le nom de l'en-tête personnalisé.

   1. Pour`value`, entrez la valeur de l'en-tête personnalisé.

1. Enregistrez le `customHttp.yml` fichier modifié dans le répertoire racine de votre projet. Si vous travaillez avec un monorepo, enregistrez le `customHttp.yml` fichier à la racine de votre dépôt.

1. Redéployez l'application pour appliquer les nouveaux en-têtes personnalisés.
   + Pour une CI/CD application, effectuez une nouvelle compilation à partir de votre dépôt Git qui inclut le nouveau `customHttp.yml` fichier.
   + Pour une application à déploiement manuel, déployez à nouveau l'application dans la console Amplify et incluez le nouveau `customHttp.yml` fichier avec les artefacts que vous téléchargez.

**Note**  
Les en-têtes personnalisés définis dans le `customHttp.yml` fichier et déployés dans le répertoire racine de l'application remplacent les en-têtes personnalisés définis dans la section **En-têtes personnalisés** de la console Amplify.

## Exemple d'en-têtes personnalisés de sécurité
<a name="example-security-headers"></a>

Les en-têtes de sécurité personnalisés permettent de renforcer le protocole HTTPS, de prévenir les attaques XSS et de protéger votre navigateur contre le clickjacking. Utilisez la syntaxe YAML suivante pour appliquer des en-têtes de sécurité personnalisés à votre application.

```
customHeaders:
  - pattern: '**'
    headers:
      - key: 'Strict-Transport-Security'
        value: 'max-age=31536000; includeSubDomains'
      - key: 'X-Frame-Options'
        value: 'SAMEORIGIN'
      - key: 'X-XSS-Protection'
        value: '1; mode=block'
      - key: 'X-Content-Type-Options'
        value: 'nosniff'
      - key: 'Content-Security-Policy'
        value: "default-src 'self'"
```

## Configuration des en-têtes personnalisés de Cache-Control
<a name="example-cache-headers"></a>

Les applications hébergées avec Amplify respectent `Cache-Control` les en-têtes envoyés par l'origine, sauf si vous les remplacez par des en-têtes personnalisés que vous définissez. Amplify applique uniquement les en-têtes personnalisés Cache-Control pour les réponses réussies avec un code d'état. `200 OK` Cela empêche les réponses aux erreurs d'être mises en cache et de les transmettre aux autres utilisateurs qui font la même demande.

Vous pouvez ajuster manuellement la `s-maxage` directive pour mieux contrôler les performances et la disponibilité du déploiement de votre application. Par exemple, pour augmenter la durée pendant laquelle votre contenu reste en cache à la périphérie, vous pouvez augmenter manuellement le temps de vie (TTL) en le mettant à jour `s-maxage` à une valeur supérieure à la valeur par défaut de 600 secondes (10 minutes).

Pour spécifier une valeur personnalisée pour`s-maxage`, utilisez le format YAML suivant. Cet exemple conserve le contenu associé en cache à la périphérie pendant 3 600 secondes (une heure).

```
customHeaders:
  - pattern: '/img/*'
    headers:
      - key: 'Cache-Control' 
        value: 's-maxage=3600'
```

Pour plus d'informations sur le contrôle des performances des applications à l'aide d'en-têtes, consultez[Utilisation de l'en-tête Cache-Control pour améliorer les performances de l'application](Using-headers-to-control-cache-duration.md).