Если сервер поддерживает его (и серверы HTTP 1.1 должны), только тогда вы можете использовать запросы диапазона ... и если все, что вы хотите сделать, это проверить, то просто отправьте запрос HEAD вместо запроса GET. Те же заголовки, то же самое, просто «ГОЛОВА», а не «ПОЛУЧИТЬ». Если вы получите ответ 206, вы узнаете, что Range поддерживается, и в противном случае вы получите ответ 200.
Один сеанс с множеством задач - по одному на запрос - будет работать безопасно одновременно. Независимо от того, выполняет ли клиент запросы на многих серверах или на одном, не имеет значения, если параллелизм меньше, чем HTTPMaximumConnectionsPerHost
, который является частью конфигурации сеанса.
Задачи выполняются параллельно. (На самом деле довольно трудно найти место в документах, где эти слова появляются явно , но здесь есть довольно хороший смысл ).
Обратите внимание, что у сессионных конфигов есть delegateQueue
. Основанием для этого является то, что поскольку задачи сеансов выполняются одновременно, уровень приложения должен сериализовать обработку результатов, чтобы две параллельных задачи не пересекались друг с другом через делегата.