Заголовок Content-Length HTTP его наличие и отсутствие

Подскажите пожалуйста, вот есть заголовок Content-length в HTTP ответе от сервера. Но, как я понял этот заголовок не является обязательным.

И вот интересная такая ситуация, вот пример ответа от сервера без заголовка Content-length:

HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>

То есть предположим:

-я выделил буфер ровно под весь размер Http-заголовков

-прочитал их в буфер

-теперь мне нужно прочитать сам HTML: я вызываю функцию чтения WSARecv(из Winsock) еще раз и дочитываю сообщение от до

Тут понятно.

А теперь предположим, пришел точно такой же ответ от сервера, НО без HTML тела, и я опять повторяю все действия и опять вызываю WSARecv, но так как после HTTP-заголовков более ничего нет и не предвидится, то теоретически WSARecv зависнет на бесконечное время в ожидании приема.

И вот тут уже не понятно, как такие ситуации отрабатывать ? Отбивать по таймауту просто ? Или есть более правильные способы ?


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