Как массово проверять код ответа https с максимальной производительностью?

#php #python #curl #httprequest #httpresponse

#php #python #curl #httprequest #httpresponse

Вопрос:

Мне нужно часто проверять коды ответа http на десятках тысяч URL-адресов. Какой способ в PHP или python был бы наиболее эффективным для этого?

В PHP я начинаю с последовательных запросов:

 function get_http_response_code($domain1) {
  $headers = get_headers($domain1);
  return substr($headers[0], 9, 3);
}

IF ($check){
    foreach ($check as $id => $url) {
        $get_http_response_code[$id] = get_http_response_code($url);
        echo $url." -> ".$get_http_response_code[$id]."n";
    }
}
  

Это занимает около 0,5 — 1 секунды на запрос:

 200 request time in ms: 920.52ms 
200 request time in ms: 1123.08ms 
200 request time in ms: 1327.84ms 
200 request time in ms: 610.86ms 
200 request time in ms: 1122.79ms 
200 request time in ms: 1226.19ms 
200 request time in ms: 1120.73ms 
200 request time in ms: 917.12ms 
200 request time in ms: 851.57ms 
  

Я пытаюсь либо улучшить, либо выполнить несколько запросов параллельно. Какой был бы наилучший способ выполнить эту задачу?

Комментарии:

1. В python есть несколько способов добиться этого, один из которых вы можете рассмотреть aiohttp.readthedocs.io/en/stable . Я проголосовал за закрытие, поскольку не думаю, что этот вопрос достаточно специфичен, чтобы получить полезный ответ, и в Интернете уже есть много ресурсов, которые адресуют одновременное выполнение http-запросов.

2. многопоточность python и будущие запросы

3. @SuperShoot Спасибо за вашу помощь. Я заглянул в библиотеку и понял, что существует множество возможностей. Однако мой вопрос, на мой взгляд, достаточно конкретен, поскольку я рассматриваю возможность увеличения общего времени обработки с помощью предоставленного PHP algo или любого другого решения. Я также обновил вопрос, включая теперь время ответа.