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
Mary-Kate Olsenoriginal
2024-12-23 17:19:11153parcourir

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:
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