Подтвердить что ты не робот

AFNetworking/NSURLConnection HTTPS продолжают жить, демонстрируя странное поведение

В настоящее время мы имеем дело с проблемами производительности в нашем приложении, и мы считаем, что некоторые из этих проблем могут быть связаны с тем фактом, что приложение и базовый сетевой стек AFNetworking, похоже, игнорируют keep-alive на HTTP 1.1.

Мы получили информацию от Apple о том, что постоянные подключения удаляются через 3, 6 или 30 секунд соответственно, в зависимости от версии iOS и подключения WiFi/WWAN, независимо от информации о поддержке на стороне сервера.

Наблюдая за рукопожатиями на наших серверах, мы заметили странное поведение, что SSL-соединение из нашего приложения на устройстве iOS остается открытым и не закрывается пакетом FIN. Как только новый запрос будет сделан из приложения, оставшееся соединение из предыдущего запроса будет THEN закрыто с пакетом FIN и будет создано новое соединение.

Хотя мы понимаем, что iOS чистит соединения, чтобы поддерживать низкое потребление батареи, мы задаемся вопросом, не прекращает ли оно существующее соединение и не отменяет это завершение до начала нового запроса.

Может ли кто-нибудь объяснить это поведение и предложить решения, чтобы избежать дорогостоящих рукопожатий SSL в соединениях, которые покрываются постоянным содержанием в обычных условиях?

4b9b3361

Ответ 1

Я столкнулся с той же проблемой несколько недель назад. Решение состояло в том, чтобы заставить webserver игнорировать keepalive http-заголовок с устройства iOs и немедленно закрыть соединение.