php / php/php-src

Support "protocol_version" stream context option for proxy connections

Abierto
#8,832 2 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Category: Streams Feature Status: Verified
Lenguaje dominante
C
Estrellas
40.4k
Forks
8.1k
Merge medio
2 d 13 h
PR fusionados (30 d)
96

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el wrapper de streams HTTP de PHP y la ruta de solicitud proxy CONNECT, comparándolos con el manejo existente de protocol_version para solicitudes directas. Verifica que la opción se aplique a las conexiones proxy y ejecuta el ejemplo de HTTPS-through-proxy, confirmando que la solicitud CONNECT usa la versión HTTP configurada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
c, php
Área
networking
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.