Maison > interface Web > js tutoriel > Comment l'en-tête « Access-Control-Allow-Origin » contrôle-t-il le partage de ressources entre origines croisées ?

Comment l'en-tête « Access-Control-Allow-Origin » contrôle-t-il le partage de ressources entre origines croisées ?

Mary-Kate Olsen
Libérer: 2024-12-23 17:19:11
original
241 Les gens l'ont consulté

How Does the 'Access-Control-Allow-Origin' Header Control Cross-Origin Resource Sharing?

Comprendre l'en-tête « Access-Control-Allow-Origin »

Dans le domaine de la communication inter-domaines, le « Access-Control L'en-tête -Allow-Origin' (ACAO) joue un rôle crucial. Il régit la manière dont les pages Web provenant de différentes origines, telles que différents domaines ou sous-domaines, interagissent les unes avec les autres. Examinons sa sémantique et ses mécanismes pour répondre aux idées fausses courantes.

Démystifier le malentendu

Contrairement aux hypothèses initiales, l'en-tête ACAO n'accorde pas d'autorisations étendues au code JavaScript pour faire des requêtes cross-origin. Au lieu de cela, il fonctionne selon les règles suivantes :

  • Autorisations spécifiques à l'origine : L'en-tête ACAO spécifie l'origine (domaine, schéma et port) autorisée à accéder à la ressource. . Par exemple, si « Access-Control-Allow-Origin : http://siteB.com » est renvoyé comme en-tête de réponse, cela signifie uniquement que les ressources sur http://siteB.com peuvent accéder à la ressource donnée.
  • Autorisation basée sur la réponse : L'en-tête ACAO est renvoyé dans le cadre des en-têtes de réponse du serveur. Il indique la ou les origines autorisées à récupérer ou à envoyer des données depuis le serveur, quelle que soit l'origine de la demande.

Activation de l'accès multi-origines

Pour activer le code JavaScript sur le site A afin d'accéder aux ressources du site B à l'aide de l'en-tête ACAO :

  1. Servez la réponse En-tête : Ajoutez l'en-tête « Access-Control-Allow-Origin : http://siteA.com » aux en-têtes de réponse des ressources du site B auxquelles vous souhaitez que le site A accède.
  2. Requêtes de contrôle en amont : Pour les requêtes qui utilisent des verbes HTTP non standard (PUT, DELETE, etc.) ou des en-têtes de requête non simples, les navigateurs lancent un contrôle en amont OPTIONS demande pour vérifier si de telles demandes sont autorisées. Le site B doit inclure « Access-Control-Allow-Methods » et « Access-Control-Allow-Headers » dans ses en-têtes de réponse de contrôle en amont pour accorder l'autorisation.

Remarque : JSONP est une technique de contournement pour activer les requêtes d'origine croisée, mais elle est sujette à des risques de sécurité et a des fonctionnalités limitées par rapport à CORS (Cross-Origin Resource Sharing), qui s'appuie sur les en-têtes ACAO.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal