Ngữ cảnh proxy HTTP của PHP không cấu hình lại một luồng TCP thô
Phân biệt các tùy chọn proxy của trình bao HTTP trong PHP với công việc giao thức cần thiết trên một kết nối TCP stream_socket_client.
Tùy chọn proxy của ngữ cảnh HTTP thuộc về trình bao luồng HTTP của PHP. Một kết nối TCP thô do stream_socket_client tạo ra không trở thành ứng dụng khách proxy HTTP chỉ vì tùy chọn đó tồn tại trong một đối tượng ngữ cảnh.
Nếu mã kết nối trực tiếp đến địa chỉ đích, nó đang mở tuyến TCP đó. Nếu nó kết nối đến địa chỉ proxy thay vào đó, các byte tiếp theo vẫn cần triển khai giao thức proxy.
Với HTTP CONNECT, điều đó có nghĩa là một máy chủ và cổng đích hợp lệ, mọi xác thực proxy cần thiết, phân tích đầy đủ phản hồi và chấp nhận trước khi giao thức đích bắt đầu. Một lệnh gọi fread duy nhất tìm kiếm cụm từ thành công không phải là một bộ kết nối hoàn chỉnh. TCP có thể chia một phản hồi giữa các lần đọc hoặc trả về các byte bổ sung phải được giữ lại.
Với đích HTTPS, TLS sau đó phải bắt đầu qua đường hầm đã thiết lập và xác minh danh tính của đích. Tên máy chủ proxy không phải là danh tính chứng chỉ của trang web.
Hãy dùng một ứng dụng khách hoặc bộ kết nối có hỗ trợ được ghi nhận cho giao thức proxy cần thiết khi nhiệm vụ chỉ là lấy một URL. Các thiết lập HTTP và SOCKS của PHP cURL cung cấp một đường lấy URL được hỗ trợ. Một luồng thô hữu ích khi ứng dụng tự đảm nhận công việc giao thức cấp thấp đó; nó không nên âm thầm kế thừa các giả định từ một ví dụ trình bao HTTP không liên quan.