Заголовок 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 зависнет на бесконечное время в ожидании приема.
И вот тут уже не понятно, как такие ситуации отрабатывать ? Отбивать по таймауту просто ? Или есть более правильные способы ?