L'option de proxy du contexte HTTP appartient au gestionnaire de flux HTTP de PHP. Une connexion TCP brute créée par stream_socket_client ne devient pas un client de proxy HTTP simplement parce que cette option existe dans un objet de contexte.

Si le code se connecte directement à l'adresse de destination, il ouvre cette route TCP. S'il se connecte plutôt à l'adresse du proxy, les octets suivants doivent encore mettre en œuvre le protocole de proxy.

Pour HTTP CONNECT, cela implique un hôte et un port de destination valides, toute authentification de proxy requise, une analyse complète de la réponse et une acceptation avant que le protocole de destination ne commence. Un seul appel fread cherchant une phrase de succès n'est pas un connecteur complet. TCP peut fractionner une réponse entre plusieurs lectures ou renvoyer des octets supplémentaires qui doivent être conservés.

Pour une destination HTTPS, TLS doit ensuite démarrer à travers le tunnel établi et vérifier l'identité de la destination. Le nom d'hôte du proxy n'est pas l'identité de certificat du site web.

Utilisez un client ou un connecteur dont la prise en charge du protocole de proxy requis est documentée lorsque la tâche consiste simplement à récupérer une URL. Les réglages HTTP et SOCKS de PHP cURL offrent un chemin pris en charge pour récupérer une URL. Un flux brut est utile lorsque l'application assume ce travail de protocole de niveau inférieur ; il ne devrait pas hériter silencieusement d'hypothèses d'un exemple de gestionnaire HTTP sans rapport.

Articles similaires