php / php/php-src

Support "protocol_version" stream context option for proxy connections

Đang mở
#8,832 2 bình luận 1 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Category: Streams Feature Status: Verified
Ngôn ngữ chính
C
Star
40.4k
Fork
8.1k
Merge trung bình
2 ngày 13 giờ
Pull request đã merge (30 ngày)
96

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với HTTP stream wrapper của PHP và đường dẫn yêu cầu proxy CONNECT, so sánh chúng với cách xử lý protocol_version hiện có đối với các yêu cầu trực tiếp. Xác minh rằng tùy chọn này áp dụng cho các kết nối proxy và thực hiện ví dụ HTTPS-through-proxy, xác nhận rằng yêu cầu CONNECT sử dụng phiên bản HTTP đã cấu hình.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
c, php
Lĩnh vực
networking
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.