Почему Curl может быть медленнее, чем веб-браузер? - PullRequest
4 голосов
/ 08 сентября 2010

Я использую этот класс , чтобы сделать один GET и другой POST-запрос к веб-сайту (первый запрос - установить cookie).Я тестирую на виртуальной машине Win XP с virtualbox, используя wamp от wampserver dot com.2 запроса занимают от 10 до 18 секунд (с помощью curl), но если я сделаю этот запрос напрямую через веб-браузер на той же виртуальной машине, веб-сайт загрузится всего за несколько секунд, и он получит все изображения, CSS и т. Д.

Что может заставить локон работать так медленно?есть ли способ это исправить?

Ответы [ 5 ]

3 голосов
/ 08 сентября 2010

Curl, вероятно, пытается перевернуть DNS сервер и, поскольку он не может, он просто там немного висит в ожидании тайм-аута.

Если тайм-аут задан IPV6, вы можете попробовать CURL_IPRESOLVE_V4, чтобы вообще обойти его. Это действительно зависит от конфигурации вашего компьютера и больше относится к отказу сервера.

2 голосов
/ 04 мая 2016

Я столкнулся с той же проблемой, используя команду curl.

, как предложено выше - исправление принудительного поиска ipv4 only dns.

curl -4 $url # красиво и быстро

(в моем файле hosts уже было ::1 localhost, но это не помогло).

2 голосов
/ 08 сентября 2010

Проверьте журналы вашего веб-сервера и попытайтесь найти разницу между запросами от обычного веб-браузера и запросами от curl

1 голос
/ 18 июня 2012

Вероятно, это связано с IPv6.

Попробуйте добавить

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
0 голосов
/ 23 декабря 2014

Я столкнулся с этой проблемой с локальным веб-сервером.Мне удалось исправить, добавив

::1 localhost

в /etc/hosts/ файл.

Это нотация ipv6 для 127.0.0.1

...