Потеря данных при их передаче методом GET запроса

У меня есть 2 сервера, которые общаются между собой с помощью http-запросов. Для выполнения запросов я использую php curl. Проблема возникает при получении данных методом GET со второго сервера:

  1. Первый сервер отправляет второму серверу GET запрос.
  2. Второй сервер формирует массив с данными и сериализирует его (serialize).
  3. Второй сервер отдает сериализированные данные с помощью echo.
  4. Первый сервер получает эти данные.

Периодически получается так, что часть данных обрезается. Конец выглядит так: введите сюда описание изображения

В то время как конец сериализированных данных должен выглядеть: введите сюда описание изображения

Очень прошу помощи, так как даже нет предположений, из-за чего данные могут обрезаться. На серверах timeout установлен с запасом: set_time_limit(28800); Так же выделен большой объем памяти, превышающий передаваемые данные: ini_set('memory_limit','8192M');

В дополнению к этому get запрос может зависнуть до ручного завершения. Например, может спокойно висеть 3 дня. А это в несколько раз превышает установленный timeout.

Первый сервер выполняет запрос следующим образом:

$Curl = curl_init();
curl_setopt($Curl, CURLOPT_URL, $sUrl);
curl_setopt($Curl, CURLOPT_VERBOSE, true);
curl_setopt($Curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, 0); // Skip SSL Verification
curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, 0); // Skip SSL Verification
curl_setopt($Curl, CURLOPT_CUSTOMREQUEST, 'GET_FILES');

$aHeaders = array();
$aHeaders[] = 'query: '.$sUrlParams;
$aHeaders[] = 'Content-Type: 0';

curl_setopt($Curl, CURLOPT_HTTPHEADER, $aHeaders);
$result = curl_exec($Curl);

Второй сервер на этот запрос делает:

$sResponse = serialize($aResponseBody); 
echo $sResponse;

Ответы (0 шт):