Les en-têtes de réponse sortants des POP Edge Security Acceleration (ESA) transmettent des paramètres de réponse au client. Configurez les en-têtes de réponse des POP ESA pour contrôler les en-têtes retournés avec les ressources. ESA permet d'ajouter, de modifier et de supprimer des règles d'en-tête de réponse.
Présentation
Lorsqu'un client demande une ressource, la requête atteint ESA. En cas d'absence dans le cache du POP ESA, ESA envoie une requête à l'origine pour récupérer les données. Le POP ESA modifie ensuite les en-têtes de réponse selon vos règles (ajout, remplacement ou suppression de champs spécifiques) avant de renvoyer la ressource au client. Ce mécanisme permet notamment le contrôle d'accès interdomaine et l'optimisation des politiques de cache.
Cas d'utilisation
Spécifier le type de ressource de réponse ESA : ajoutez un en-tête
Content-Type: text/htmlpour indiquer au client que la réponse ESA est au format HTML et garantir un rendu correct.Activer l'accès aux ressources cross-origin : lorsqu'un utilisateur demande une ressource depuis un domaine sur ESA, configurez l'en-tête de réponse
Access-Control-Allow-Origindepuis ESA pour autoriser l'accès cross-origin . Pour plus d'informations, consultez Configurer le partage de ressources cross-origin.Personnaliser le comportement de réponse : ajoutez ou modifiez des en-têtes personnalisés pour ajuster le contenu et le format de la réponse, ou utilisez-les à des fins de suivi.
Ordre d'exécution des règles
Les règles s'exécutent séquentiellement de haut en bas. Une règle ultérieure portant sur le même nom d'en-tête de réponse écrase les règles précédentes, ce qui peut entraîner des résultats inattendus.
Exemple 1
Le message de réponse contient l'en-tête
test:123.Une règle définit l'en-tête de réponse
test:321.
Si le message de réponse correspond à la règle, l'en-tête original test:123 est remplacé par test:321.
Exemple 2
Le message de réponse contient l'en-tête
test:123.Une règle définit l'en-tête de réponse
test:321. Ensuite, une autre règle supprime l'en-têtetest.
Si le message de réponse correspond aux règles, l'en-tête original test:123 est supprimé.
Procédure
Dans la console ESA, sélectionnez Websites. Dans la colonne Websites, cliquez sur le site cible.
Dans le volet de navigation de gauche, choisissez .
Sélectionnez l'onglet Modify Response Header, cliquez sur la section ESA to Client, puis cliquez sur Create Rule.

Cliquez sur Create Rule. Dans la section Create Rule, définissez les caractéristiques de la requête utilisateur à faire correspondre. Pour plus d'informations sur la configuration des règles, consultez Composants d'une expression de règle.
-
Dans la section If requests match..., sélectionnez une Modify Response Header, saisissez un Operation et une Response Header Name, puis cliquez sur Response Header Value.
RemarqueNe définissez pas de OK commençant par
ali-innerouali-swift.Vous pouvez configurer plusieurs valeurs dans le champ Response Header Name. Séparez-les par des virgules (
,).L'opération de suppression fonctionne de manière identique pour les schémas statiques et dynamiques.
L'opération de modification change un en-tête de réponse existant et ne prend effet que si un en-tête portant le nom spécifié existe déjà dans la réponse d'origine.
Exemple de configuration
Si vous utilisez OSS comme serveur d'origine et configurez CORS à la fois dans les consoles OSS et ESA, la configuration ESA remplace les paramètres CORS d'OSS.
Appliquer à toutes les requêtes
Cas d'utilisation
Autorisez toutes les requêtes provenant de votre site (example.com) à accéder aux ressources de n'importe quelle origine.
Étapes
Dans la console ESA, sélectionnez Websites. Dans la colonne Response Header Value, cliquez sur le site cible.
Dans le volet de navigation de gauche, choisissez . Sur la page Transform Rules, cliquez sur l'onglet Modify Response Header. Définissez Response Header Position sur ESA to Client, puis cliquez sur le bouton Create Rule.

-
Sur la page Create Response Header Modification Rule, configurez les paramètres suivants :
Rule Name : saisissez un nom de règle personnalisé, par exemple
rule-cors-for-all.If requests match... : sélectionnez All Requests.
-
Then execute... : configurez les paramètres suivants :
Type : sélectionnez Static.
Operation : sélectionnez Add.
Response Header Name : saisissez
Access-Control-Allow-Origin.Response Header Value : saisissez
*.

Résultat
Pour toute requête cross-origin, ESA ajoute l'en-tête Access-Control-Allow-Origin: * à la réponse, permettant ainsi au navigateur d'afficher la ressource cross-origin.

Appliquer à des requêtes spécifiques
Cas d'utilisation
Autorisez l'accès cross-origin lorsque l'en-tête origin correspond à un sous-domaine de example.com via HTTP ou HTTPS. Par exemple :
origin:http://www.example.comorigin:https://www.example.comorigin:http://image.example.comorigin:https://image.example.com
La valeur de l'en-tête de réponse CORS doit correspondre à l'en-tête origin présent dans la requête.
Étapes de configuration
Dans la console ESA, sélectionnez Websites. Dans la colonne Website, cliquez sur le site cible.
Dans le volet de navigation de gauche, choisissez . Sur la page Website, cliquez sur l'onglet Rules. Définissez Response Header Position sur Transform Rules, puis cliquez sur le bouton Transform Rules.

-
Sur la page Modify Response Header, configurez les paramètres suivants :
ESA to Client : saisissez un nom de règle personnalisé, par exemple
rule-cors-origin.-
Create Rule : pour cet exemple, définissez la condition sur Create Response Header Modification Rule Value of origin Rule Name ^https?://(?:a-zA-Z0-9?\.)+example\.com$.
Vous pouvez également modifier directement l'expression comme suit :
(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")RemarqueSi votre plan ne prend pas en charge la correspondance par expressions régulières, utilisez l'opérateur If requests match... et listez les valeurs d'en-tête origin autorisées.
Vous pouvez également modifier directement l'expression comme suit :
(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})
-
Header : configurez les paramètres suivants :
matches regex : sélectionnez is in.
Then execute... : sélectionnez Type.
Dynamic : saisissez
Access-Control-Allow-Origin.Operation : saisissez
http.request.headers["origin"].

Résultat
Lorsque l'en-tête origin d'une requête cross-origin correspond à la règle, ESA ajoute l'en-tête Access-Control-Allow-Origin avec la valeur issue de l'en-tête Origin du client. Le navigateur traite alors la réponse et affiche la ressource cross-origin.

Paramètres d'en-tête de réponse
|
Paramètre d'en-tête de réponse |
Description |
Exemple |
|
Personnalisé |
Ajoutez des en-têtes de réponse personnalisés. Le nom de l'en-tête doit respecter les exigences suivantes :
|
Test-Header |
|
Cache-Control |
Définit le mécanisme de mise en cache pour les requêtes et les réponses du client. |
no-cache |
|
Content-Disposition |
Indique le nom de fichier par défaut lorsque le client enregistre le contenu sous forme de fichier. |
examplefile.txt |
|
Content-Type |
Spécifie le type de contenu de la réponse destinée au client. |
text/plain |
|
Pragma |
En-tête général HTTP/1.0 définissant le comportement de mise en cache du client pour les fichiers. |
no-cache |
|
Access-Control-Allow-Origin |
Indique quelles origines peuvent accéder à la ressource, dans le cadre du mécanisme
|
|
|
Access-Control-Allow-Methods |
Définit les méthodes autorisées pour les requêtes cross-origin. Séparez les différentes méthodes par des virgules ( |
POST,GET |
|
Access-Control-Allow-Headers |
Spécifie les champs autorisés pour les requêtes cross-origin. |
X-Custom-Header |
|
Access-Control-Expose-Headers |
Indique les en-têtes personnalisés accessibles. |
Content-Length |
|
Access-Control-Allow-Credentials |
Indique si la réponse peut être exposée à la page.
|
true |
|
Access-Control-Max-Age |
Définit la durée pendant laquelle le client peut mettre en cache le résultat de la requête preflight, en secondes. |
600 |
Documentation associée
Les fonctionnalités liées aux règles varient en termes de priorité effective, de réentrance et de granularité d'application. Pour plus de détails, consultez Propriétés des fonctionnalités liées aux règles.