В настоящее время мы имеем дело с проблемами производительности в нашем приложении, и мы считаем, что некоторые из этих проблем могут быть связаны с тем фактом, что приложение и базовый сетевой стек AFNetworking, похоже, игнорируют keep-alive на HTTP 1.1.
Мы получили информацию от Apple о том, что постоянные подключения удаляются через 3, 6 или 30 секунд соответственно, в зависимости от версии iOS и подключения WiFi/WWAN, независимо от информации о поддержке на стороне сервера.
Наблюдая за рукопожатиями на наших серверах, мы заметили странное поведение, что SSL-соединение из нашего приложения на устройстве iOS остается открытым и не закрывается пакетом FIN. Как только новый запрос будет сделан из приложения, оставшееся соединение из предыдущего запроса будет THEN закрыто с пакетом FIN и будет создано новое соединение.
Хотя мы понимаем, что iOS чистит соединения, чтобы поддерживать низкое потребление батареи, мы задаемся вопросом, не прекращает ли оно существующее соединение и не отменяет это завершение до начала нового запроса.
Может ли кто-нибудь объяснить это поведение и предложить решения, чтобы избежать дорогостоящих рукопожатий SSL в соединениях, которые покрываются постоянным содержанием в обычных условиях?