php / php/php-src

Support "protocol_version" stream context option for proxy connections

Ouverte
#8,832 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Category: Streams Feature Status: Verified
Langage dominant
C
Étoiles
40.4k
Forks
8.1k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

Hello. We have protocol_version option for talking with remote host using specified HTTP protocol version. However, HTTP connection to proxy always goes with HTTP/1.0 which upsets my proxy server.

Example:

<?php
$ctx = stream_context_create(
  ['http' => ['proxy' => 'tcp://corporate-proxy.example:3128']]
);
echo file_get_contents("https://getcomposer.org/versions", false, $ctx);

Result:

Warning: file_get_contents(): SSL: Connection reset by peer in a.php on line 5

Warning: file_get_contents(https://getcomposer.org/versions):
  Failed to open stream: Cannot connect to HTTPS server through proxy in a.php on line 5

Actual request as seen by wireshark:

CONNECT getcomposer.org:443 HTTP/1.0

HTTP/1.1 426 Upgrade Required
date: Mon, 20 Jun 2022 10:23:30 GMT
server: envoy
connection: close
content-length: 0

My proxy server supports only HTTP/1.1. So it's would be very handy to have an option for configuring http protocol version for proxy connections.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le wrapper de flux HTTP de PHP et le chemin de la requête proxy CONNECT, en les comparant à la gestion existante de protocol_version pour les requêtes directes. Vérifiez que l’option s’applique aux connexions proxy et exécutez l’exemple HTTPS-through-proxy, en confirmant que la requête CONNECT utilise la version HTTP configurée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, php
Domaine
networking
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.