Les ressources partagées Curl se réfèrent à l'autorisation de plusieurs sessions Curl pour partager certaines ressources, en réduisant l'initialisation en double des ressources. Dans les applications pratiques, plusieurs demandes de curl nécessitent souvent la même opération, comme l'analyse du DNS ou le traitement des cookies. En partageant ces ressources, les développeurs peuvent améliorer l'efficacité des demandes et éviter les demandes et les calculs du réseau en double.
Curl fournit la fonction Curl_share_init pour initialiser la session partagée et coopère avec l'option Curlshopt_share pour spécifier les ressources à partager. Les ressources les plus courantes comprennent la résolution DNS, les cookies et les séances SSL.
La fonction CURL_SHARE_INIT est utilisée pour initialiser une session partagée, qui renvoie une poignée partagée qui peut être utilisée pour spécifier des options partagées. Voici les usages de base de cette fonction:
$share = curl_share_init();
Cette fonction renvoie une poignée partagée $ partage , que vous pouvez utiliser plus tard pour définir le type de ressource partagé.
Grâce à la fonction Curl_share_Setopt , les développeurs peuvent contrôler avec précision les ressources à partager. Par exemple, nous pouvons choisir de partager la résolution DNS, le stockage des cookies ou les séances SSL.
Le partage de résolution DNS est l'une des mesures d'optimisation courantes, en particulier lors de la demande du même nom de domaine plusieurs fois, en évitant la requête DNS par demande.
curl_share_setopt($share, CURLSHOPT_SHARE, CURLSHARE_DNS);
Cette option permettra à toutes les sessions de boucle en utilisant la poignée partagée pour partager les résultats de la résolution DNS, réduisant les requêtes DNS en double.
Lorsque plusieurs demandes de curl nécessitent les mêmes cookies, les développeurs peuvent partager des cookies pour réduire le temps de traitement des cookies par demande.
curl_share_setopt($share, CURLSHOPT_SHARE, CURLSHARE_COOKIE);
Cette option permet à plusieurs séances de boucle de partager le même stockage de cookies.
Si plusieurs demandes utilisent la même session SSL, les développeurs peuvent choisir de partager l'état de la session SSL, ce qui peut empêcher chaque demande de rétablir la connexion SSL, augmentant ainsi l'efficacité.
curl_share_setopt($share, CURLSHOPT_SHARE, CURLSHARE_SSL);
Cette option permet de partager des sessions SSL, en réduisant le nombre de poignées de main SSL.
Après avoir initialisé la session partagée, nous devons l'associer à la demande de curl spécifique. Dans chaque demande CURL, une poignée partagée est passé par la fonction Curl_Setopt afin que la demande puisse utiliser la ressource partagée.
$ch = curl_init("http://example.m66.net");
curl_setopt($ch, CURLOPT_URL, "http://example.m66.net");
curl_setopt($ch, CURLOPT_SHARE, $share);
curl_exec($ch);
curl_close($ch);
Dans le code ci-dessus, nous transmettons la poignée partagée $ partage à la session CURL $ CH afin que la demande puisse partager une session DNS, cookie ou SSL.
Lorsqu'une session partagée n'est plus nécessaire, la session partagée peut être fermée via la fonction Curl_share_close et les ressources pertinentes peuvent être publiées.
curl_share_close($share);
Choix de granularité partagée : tous les scénarios ne conviennent pas au partage de DNS, cookies ou séances SSL. Lors du partage de ces ressources, les exigences spécifiques de la demande doivent être prises en compte. Par exemple, différentes applications peuvent avoir différentes politiques de stockage des cookies et un partage excessif peut entraîner des problèmes de confidentialité.
Le cycle de vie d'une session partagée : assurez-vous que le cycle de vie d'une session partagée correspond à la session Curl et évitez la détruire la session partagée avant la fin de la demande de curl.
Étiquettes associées:
Cookie