Не рекомендуется ли конвейерная передача HTTP 1.1 в нативных мобильных приложениях? - PullRequest
2 голосов
/ 17 сентября 2009

В течение нескольких лет у меня возникали проблемы с конвейерной передачей HTTP 1.1, и я продолжал просить сервер отправить HTTP-заголовок:

Connection: close

Я хочу вернуться к этому решению. Используют ли ваши собственные мобильные приложения HTTP-конвейер? Некоторые проблемы с конвейерной передачей HTTP, с которыми я столкнулся:

  • Сервер не освобождает TCP-соединения
  • Мой клиент получает несколько ответов от одного HTTP-соединения

Ответы [ 4 ]

2 голосов
/ 22 октября 2009

Это именно то, для чего нужны постоянные соединения и конвейеризация: сохранение соединения TCP открытым до истечения времени ожидания (или закрытия браузера) и отправка нескольких запросов по одному и тому же каналу.

Возможно, вы захотите удалить постоянные соединения, если ваш сервер обслуживает большое количество клиентов (у вас может не хватить рабочих, ОЗУ или даже свободных портов, что увеличивает время отклика для новых запросов)

Если вы хотите читать дальше, указатель о постоянное поведение соединения

0 голосов
/ 26 января 2012

Вы путаете HTTP-конвейер и HTTP-постоянные соединения.

Постоянное соединение - это то место, где вы сохраняете соединение TCP для будущих запросов, но все равно отправляете их последовательно: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

Конвейерная передача - это редко используемая функция HTTP 1.1, когда вы просто запускаете несколько запросов на одном соединении, не ожидая ответов. Это на самом деле требуется спецификацией HTTP, но редко используется клиентами (например, библиотека HTTP Android этого не делает). Однако большинство серверов поддерживают его. Это описано в разделе 8.1.2.2 того же RFC.

0 голосов
/ 07 октября 2009

HTTP «конвейеризация» означает не только сохранение TCP-соединения открытым между последовательными запросами / ответами. Он описывает поведение агента пользователя, когда он отправляет следующий HTTP-запрос, даже не ожидая ожидающего ответа на последний запрос.

По моему опыту, почти любой HTTP-сервер поддерживает постоянные соединения. Использование трубопровода дополнительно менее стабильно. Firefox реализует эту функцию, но по умолчанию набирает ее.

0 голосов
/ 17 сентября 2009

Одним из требований к клиентам / серверам для совместимости с HTTP / 1.1 является поддержка конвейерной передачи. Так что я не понимаю, как это может быть проблемой ... Я бы предпочел, чтобы это поощрялось. Используя конвейеризацию, вы сокращаете создание новых ресурсов, пропускную способность сети и т. Д.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...