Vous pouvez modifier, supprimer ou ajouter des en-têtes de réponse transmis par un serveur d'origine à ESA, tels que Cache-Control et Expires. La maîtrise de ces en-têtes permet d'optimiser le comportement du cache, de renforcer la sécurité et de personnaliser l'expérience client.
Fonctionnement des en-têtes de réponse origine-ESA
Cette fonctionnalité modifie des en-têtes de réponse spécifiques provenant de l'origine selon des règles prédéfinies. Ces modifications s'appliquent avant que le serveur ESA ne traite l'objet. Si le contenu de la réponse peut être mis en cache, les en-têtes modifiés sont stockés dans le cache avec la réponse.
Ce comportement diffère de la modification des en-têtes de réponse ESA-client. Lors de la modification des en-têtes ESA-client, les changements s'appliquent après le traitement complet de la réponse par ESA (depuis le serveur d'origine ou le cache), juste avant son envoi immédiat au client.
Modifier les en-têtes de réponse origine-ESA
Dans la console ESA, sélectionnez Websites, puis dans la colonne Website, cliquez sur le site cible.
Dans le volet de navigation de gauche, choisissez .
-
Sélectionnez l'onglet Response Header, cliquez sur l'élément Origin to ESA, puis sur Add, et configurez enfin les conditions de correspondance dans la section Match Conditions. Pour plus d'informations, consultez Composants d'une expression de règle.

-
Dans la section Modify Response Headers, sélectionnez une action, saisissez un nom et une valeur d'en-tête, puis cliquez sur Submit.
Le tableau suivant décrit les actions et modes disponibles. Le Mode détermine la méthode de spécification de la valeur d'en-tête : Static utilise une valeur fixe saisie manuellement, tandis que Dynamic évalue une expression de règle lors de l'exécution.
Action
Mode
Description
Example
Add
Static
Ajoute l'en-tête de réponse spécifié à la réponse du serveur d'origine. Si un en-tête portant le même nom existe déjà, le nouvel en-tête le remplace.
Pour ajouter un en-tête de réponse nommé
x-codeavec la valeurkey1, définissez Header Name surx-codeet Header Value surkey1.Add
Dynamic
La valeur de l'en-tête de réponse peut être une expression de règle.
Pour ajouter un en-tête de réponse nommé
Client-Ip-Geo-Locationavec la valeur dynamiqueip.geoip.countryindiquant le pays ou la région de l'IP du client, définissez Header Name surClient-Ip-Geo-Locationet Header Value surip.geoip.country.Modify
Static
Modifie la valeur d'un en-tête de réponse spécifique dans la réponse du serveur d'origine.
Pour remplacer la valeur de l'en-tête de réponse
x-codeparkey2, définissez Header Name surx-codeet Header Value surkey2.Modify
Dynamic
La valeur de l'en-tête de réponse peut être une expression de règle.
Pour remplacer la valeur de l'en-tête de réponse
Client-Ip-Geo-Locationpar la valeur dynamiqueip.geoip.country, définissez Header Name surClient-Ip-Geo-Locationet Header Value surip.geoip.country.Delete
—
Supprime de la réponse du serveur d'origine toutes les instances de l'en-tête correspondant au nom spécifié. L'opération de suppression est identique pour les modes statique et dynamique.
Pour supprimer l'en-tête de réponse
x-code, définissez Header Name surx-code.RemarqueVous ne pouvez pas configurer de nom d'en-tête commençant par
ali-swift,ali-esa-inner,x-swiftoux-site(insensible à la casse).Vous pouvez spécifier plusieurs valeurs dans le champ Header Value. Séparez-les par une virgule (
,).L'action Modify modifie un en-tête de réponse existant et ne prend effet que si un en-tête portant le nom spécifié figure dans la réponse d'origine.
Paramètres des en-têtes de réponse
|
Parameter |
Description |
Example |
|
Custom |
Permet d'ajouter des en-têtes de réponse personnalisés. Un nom d'en-tête personnalisé doit respecter les exigences suivantes : composé de lettres majuscules, minuscules, chiffres et tirets ( |
|
|
|
Indique si la réponse peut être exposée à la page. Valeurs : |
|
|
|
Spécifie les en-têtes autorisés pour les requêtes cross-origin. |
|
|
|
Définit les méthodes autorisées pour les requêtes cross-origin. Séparez plusieurs méthodes par une virgule ( |
|
|
|
Désigne les origines autorisées à accéder à la ressource. Fait partie du mécanisme CORS (Cross-Origin Resource Sharing). Valeurs prises en charge : le caractère générique ( |
|
|
|
Précise les en-têtes auxquels les scripts côté client peuvent accéder. |
|
|
|
Définit la durée de mise en cache des résultats d'une requête preflight, en secondes. |
|
|
|
Spécifie les directives de mise en cache pour les requêtes et les réponses. |
|
|
|
Suggère un nom de fichier par défaut si le client enregistre le contenu de la réponse sous forme de fichier. |
|
|
|
Indique le type de média du contenu de la réponse. |
|
|
|
En-tête HTTP/1.0 utilisé dans les réponses serveur pour définir le comportement de mise en cache des clients. |
|
Exemple de configuration d'expression dynamique
L'exemple suivant illustre l'utilisation de la fonction regex_replace avec le champ http.response.headers pour remplacer des caractères spéciaux dans la valeur d'un en-tête de réponse provenant du serveur d'origine.
Scénario : Remplacer le symbole # par - dans la valeur de l'en-tête HTTP example lors de la réponse transmise du serveur d'origine au nœud ESA.
Configuration
Dans la section Modify Response Headers, configurez les paramètres suivants :
|
Parameter |
Value |
|
Type |
Dynamic |
|
Operation |
Modify |
|
Response Header Name |
|
|
Response Header Value |
|
Résultat
|
Value |
|
|
En-tête de réponse d'origine |
|
|
En-tête modifié |
|