Я использую класс System.Net.HttpWebRequest для реализации простого Загрузчик HTTP, который можно приостановить, отменить и даже возобновить после его отмены (с заголовком запроса HTTP Range).
Понятно, что HttpWebRequest.GetResponse () - это когда HTTP-запрос фактически отправляется на сервер, а метод возвращается, когда получен HTTP-ответ (или наступает тайм-аут). Однако тело ответа представлено Stream, что заставляет меня задаться вопросом, действительно ли тело ответа передается с заголовком ответа (т.е. оно уже загружено, когда GetResponse () возвращается), или оно загружается только по запросу, когда я пытаюсь читать из потока ответов? Или, может быть, когда я вызываю метод HttpWebResponse.GetResponseStream ()?
К сожалению, документация msdn не говорит об этом, и я недостаточно знаю о протоколе HTTP, чтобы сказать.
Как в этом случае ведут себя фрагментированные передачи и т.п. (то есть как мне обрабатывать их в моем приложении C #)? Когда на самом деле данные ответа загружаются с сервера?