Lorsque le cache d'un point de présence (POP) expire ou qu'une absence de cache se produit, le POP demande le contenu le plus récent au serveur d'origine. Le contenu et les en-têtes HTTP renvoyés par le serveur d'origine sont appelés en-têtes de réponse d'origine. Vous pouvez modifier ces en-têtes sur votre serveur d'origine pour définir une politique de mise en cache, configurer le partage de ressources cross-origin (CORS), etc. Cela vous permet d'optimiser la vitesse de chargement du site web, d'améliorer la sécurité du contenu, de contrôler l'accessibilité des ressources et d'offrir une meilleure expérience utilisateur.
Contexte
Les en-têtes de réponse HTTP font partie d'une réponse HTTP et transmettent des paramètres spécifiques au client.
Lorsque le contenu demandé par un utilisateur final n'est pas mis en cache sur un nœud CDN, le CDN effectue une récupération depuis l'origine (origin fetch) et le serveur d'origine envoie une réponse. Vous pouvez modifier les en-têtes HTTP dans cette réponse entrante. Par exemple, vous pouvez réécrire la valeur de l'en-tête Content-Type avant qu'elle ne soit transmise au client afin de garantir une analyse correcte. Si le serveur d'origine renvoie une valeur Content-Type incorrecte, le client risque de ne pas pouvoir analyser correctement le contenu. Vous pouvez résoudre ce problème en réécrivant l'en-tête sur le CDN.
Une réponse entrante est le message HTTP qu'un serveur d'origine envoie à un nœud CDN. La modification des en-têtes de réponse entrants affecte uniquement le message HTTP envoyé du serveur d'origine au nœud CDN ; elle n'affecte pas les réponses que le nœud CDN sert à l'utilisateur final.
Vous ne pouvez pas modifier les en-têtes de réponse entrants pour les domaines génériques (wildcard).
Cas d'utilisation
Voici des cas d'utilisation courants et des exemples :
-
Type de contenu incorrect : si le type de contenu (
Content-Type) renvoyé par le serveur d'origine ne correspond pas au contenu réel, le client peut ne pas pouvoir l'analyser correctement. Par exemple, un fichier HTML peut être incorrectement identifié comme du texte brut. Vous pouvez résoudre ce problème en configurant l'en-tête de réponse d'origine.Exemple : remplacez
Content-Type: text/plainparContent-Type: text/html. -
Contrôle de la politique de mise en cache : si vous avez besoin d'un contrôle précis de la politique de mise en cache du CDN, vous pouvez ajuster les champs
Cache-ControlouExpiresdans les en-têtes de réponse du serveur d'origine. Cela permet d'optimiser la fréquence de mise à jour du contenu et le taux de succès du cache.Exemple : remplacez
Cache-Control: max-age=3600parCache-Control: max-age=86400pour prolonger la durée d'expiration du cache. Pour plus d'informations sur les règles de mise en cache par défaut du CDN, consultez Règles de mise en cache par défaut et priorités d'Alibaba Cloud CDN. -
Partage de ressources cross-origin (CORS) : si vous souhaitez autoriser des applications web provenant d'autres domaines à accéder aux ressources hébergées sur le CDN, vous devez configurer l'en-tête
Access-Control-Allow-Originet d'autres en-têtes CORS associés sur le serveur d'origine. Ces paramètres garantissent que lorsqu'un navigateur effectue une requête cross-origin, le CDN peut fournir les en-têtes de réponse appropriés au client pour éviter les erreurs CORS. Pour plus d'informations sur les problèmes d'accès cross-origin, consultez Configurer le partage de ressources cross-origin.Exemples :
Access-Control-Allow-Origin: *: autorise les requêtes de ressources cross-origin depuis tous les domaines.Access-Control-Allow-Methods: GET, POST, OPTIONS: spécifie les méthodes HTTP autorisées pour les requêtes cross-origin.
-
Transfert compressé : si le serveur d'origine prend en charge le transfert compressé mais ne l'a pas activé, ou si l'algorithme de compression utilisé n'est pas le plus efficace, vous pouvez définir l'en-tête
Accept-Encodingdans la réponse de retour vers l'origine pour indiquer au serveur d'origine d'utiliser la méthode de compression optimale.Exemple : remplacez
Accept-Encoding: gzip, deflateparAccept-Encoding: brpour privilégier la compression Brotli. Pour plus d'informations, consultez Compression Brotli. -
Redirection : lorsque votre serveur d'origine doit rediriger un utilisateur vers une autre URL, vous pouvez définir les en-têtes de redirection corrects dans l'en-tête de réponse d'origine. Pour plus d'informations, consultez Configurer le suivi de la redirection 301/302.
Exemple :
Location: https://www.example.com/new-page.html: notifie le CDN et le navigateur de l'utilisateur du nouvel emplacement de la ressource pour une redirection 301 ou 302. Comportement d'origine personnalisé : vous pouvez avoir besoin d'ajouter des en-têtes personnalisés à la réponse pour implémenter des fonctions spécifiques ou à des fins de suivi.
Remarques
-
Plusieurs configurations sont exécutées de haut en bas dans l'ordre où elles apparaissent dans la liste de configuration. Les effets sont cumulatifs. Si plusieurs configurations modifient le même en-tête, la dernière a priorité. Dans l'exemple suivant, c'est la Configuration 2 qui s'applique :
Configuration 1 : Ajouter l'en-tête de réponse HTTP :
cache-control: max-age=3600Configuration 2 : Ajouter l'en-tête de réponse HTTP :
cache-control: no-cache
Lorsque des conditions de règle sont appliquées, la correspondance est déterminée par la priorité des conditions, et non par l'ordre des configurations.
Procédure
Connectez-vous à la console CDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names, recherchez le nom de domaine cible et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation du domaine, cliquez sur Origin Fetch.
Cliquez sur l'onglet Modify Incoming Response Header.
Cliquez sur Customize.
-
Modifiez les paramètres de l'en-tête de réponse entrant.
ImportantSi plusieurs opérations s'appliquent au même paramètre d'en-tête de réponse d'origine, les opérations sont exécutées selon la priorité suivante : Replace > Add > Change et Delete. Par exemple, si une opération d'ajout et une opération de suppression sont configurées pour le même paramètre, l'opération d'ajout est exécutée avant l'opération de suppression.
Ajouter un en-tête de réponse
Supprimer un en-tête de réponse
Modifier un en-tête de réponse
Remplacer un en-tête de réponse
Cliquez sur OK.
En-têtes de réponse par défaut
Alibaba Cloud CDN définit quatre en-têtes de réponse par défaut : Cache-Control, Content-Type, Expires et Last-Modified. Ces en-têtes essentiels du protocole HTTP contrôlent la mise en cache, définissent les types de contenu, fixent les délais d'expiration et enregistrent la date de dernière modification des ressources.
|
En-tête |
Description |
Exemple |
|
Cache-Control |
Contrôle le comportement et la durée de la mise en cache d'une ressource. Il fournit des directives de mise en cache aux POP et aux navigateurs clients, en spécifiant quand mettre en cache le contenu, pendant combien de temps et quand il devient obsolète. Cet en-tête a priorité sur l'en-tête hérité |
|
|
Content-Type |
Spécifie le type de média d'une ressource. Cet en-tête aide le navigateur client à interpréter et à restituer correctement les données. Le CDN utilise également cet en-tête pour traiter et transférer le contenu. |
|
|
Expires |
Spécifie la date et l'heure d'expiration de la ressource. Le CDN utilise cet en-tête pour déterminer si la ressource est toujours valide. Si elle a expiré, le CDN effectue une récupération depuis l'origine pour obtenir une version mise à jour. L'en-tête |
|
|
Last-Modified |
Indique l'heure de la dernière modification de la ressource. Le CDN et les navigateurs clients utilisent cet en-tête de réponse pour déterminer si une ressource mise en cache est toujours à jour. |
|
Exemples de configuration
Exemple 1 : Définir un type MIME de réponse
Cas d'utilisation
Définir un type MIME spécifique pour une réponse.
Les types MIME incluent les catégories principales suivantes :
Texte : inclut les fichiers texte (tels que .txt et .csv) et les fichiers HTML (tels que .html, .htm et .shtml).
Image : inclut les fichiers image courants (tels que .jpg, .png et .gif).
Audio : inclut les fichiers audio (tels que .mp3 et .wav).
Vidéo : inclut les fichiers vidéo (tels que .mp4 et .avi).
Application : inclut les fichiers d'application (tels que .pdf, .doc et .xls).
Configuration
Opération d'en-tête de réponse : Ajouter
Nom de l'en-tête : Content-Type
-
Valeur de l'en-tête : text/html
Définissez Allow Duplicates sur Do not allow et Rule Condition sur Do not use, puis cliquez sur OK.
Résultat : le POP ajoute l'en-tête Content-Type: text/html à la réponse du serveur d'origine. Si vous configurez à nouveau cet en-tête, la nouvelle valeur écrase la valeur existante.
Exemple 2 : Supprimer un en-tête de réponse
Cas d'utilisation
Suppression d'un en-tête de réponse.
Configuration
Opération d'en-tête de réponse : Supprimer
-
Nom de l'en-tête : Content-Type
Définissez Allow Duplicates sur Do not allow et Rule Condition sur Do not use, puis cliquez sur OK.
Résultat : le POP supprime l'en-tête Content-Type de la réponse avant de la renvoyer au client.
Si vous appliquez les configurations de l'Exemple 1 et de l'Exemple 2, le système ajoute d'abord puis supprime l'en-tête de réponse Content-Type: text/html . Par conséquent, le client reçoit la réponse sans type MIME spécifié.
FAQ
Pour les questions de dépannage (CORS, caractères illisibles, téléchargement/aperçu, Set-Cookie, type MIME JS, etc.), consultez Dépannage du cache.
Pour les questions de consultation (vérification ACAO de l'origine, configuration précise video/mp4, prise en charge des fichiers JS, état de synchronisation des fichiers, etc.), consultez FAQ sur la récupération depuis l'origine.