Support "protocol_version" stream context option for proxy connections
Nessuno ha ancora preso questa issue.
- Lingua principale
- C
- Stelle
- 40.4k
- Fork
- 8.1k
- Merge medio
- 2g 13h
- PR unite (30g)
- 96
Descrizione
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.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con lo stream wrapper HTTP di PHP e il percorso della richiesta proxy CONNECT, confrontandoli con la gestione esistente di protocol_version per le richieste dirette. Verifica che l'opzione si applichi alle connessioni proxy ed esegui l'esempio HTTPS-through-proxy, confermando che la richiesta CONNECT utilizzi la versione HTTP configurata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- c, php
- Ambito
- networking
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100