Я пытаюсь использовать прямой прокси-сервер (Apache Traffic Server или Squid) на моем локальном компьютере, как локальный HTTP-кеш для моих вызовов cURL.
Я установил прокси-сервер, используя:
curl_setopt($ch, CURLOPT_PROXY, 'http://localhost:8080');
Когда я запрашиваю HTTP-сайт, cURL выполняет стандартный HTTP-запрос GET
прокси-сервера, который можно кэшировать должным образом:
GET http://example.com/ HTTP/1.1
Однако, при запросе веб-сайта HTTPs, cURL вместо этого выполняет CONNECT
, эффективно используя прокси в качестве туннеля TCP и не позволяя ему кэшировать ответ:
CONNECT example.com:80 HTTP/1.1
Есть ли способ заставить cURL выполнить запрос GET
даже для веб-сайтов HTTP?
Я могу понять обоснование использования туннеля TCP для HTTP-запросов через прокси-сервер HTTP для обеспечения безопасности, но поскольку мой прокси-сервер находится на локальном хосте, мне все равно, если вы используете небезопасное HTTP-соединение с прокси-сервером и хотите, чтобы cURL для выполнения запроса GET
:
GET https://example.com/ HTTP/1.1
Я попытался использовать:
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
Но это ничего не изменило.