Лишние символы в ответе сервера

289
06 апреля 2017, 21:14

Я уже задавал этот вопрос в английской ветке, но ответов не было. Надеюсь, это не есть дубликат...

С помощью сокета я подключаюсь к серверу $stc = stream_socket_client("$url:80",$err,$ert);, задаю запрос GET ($req содержит детали, там все ОК), считываю заголовки ответа, вывожу их на экран

fwrite($stc,$req);
$s = "";
$tmp = fgets($stc);
while($tmp!="\r\n"){
    $s.=$tmp.'<br>';
    $tmp = fgets($stc);
}
echo $s.'<br>';

Потом считываю тело ответа (таким же макаром, по-классике). С какого-то момента я заметил, что в теле ответа появляется стока-число (НЕХ) - четыре цифробуквы типа 34f2. Она обновляется с каждым новым запросом.

Мне не сложно от нее избавиться, распознать или учесть, но причина ее появления так и не разведана. Есть ли к-то идеи?

PS

при использовании cURL такой проблемы нет. Только сокет (наверно, следствие сложной обраотки в кодах cURL)

Answer 1

Если в заголовках ответа сервера не указывается длина данных

  Content-Length: 1234

то некоторые серверы разбивают ответ на блоки-чанки (chunks), указывая их длину в отдельной строке НЕХ-числом. Признаком длины чанка есть пустая строка

12А3
<!DOCTYPE html>
 ....
READ ALSO
Не загружаются фотографии (VK API)

Не загружаются фотографии (VK API)

ЗдравствуйтеНужно загрузить фотографии в VK по ссылке, полученной методом photos

261
Как правильно реализовать агрегацию в MongoDB?

Как правильно реализовать агрегацию в MongoDB?

Ломаю голову над агрегацией в MongoDB

236
Единая точка входа и права доступа сайта

Единая точка входа и права доступа сайта

Здравствуйте! Предложите оптимальный вариант точки входа и разграничения по правам доступа к страницамДля не пользователей должна быть...

254