БОШ (протокол)


Двунаправленные потоки через синхронный HTTP ( BOSH ) — это транспортный протокол , который эмулирует двунаправленный поток между двумя объектами (такими как клиент и сервер ) с использованием нескольких синхронных пар HTTP -запрос/ответ без необходимости использования опроса или асинхронного разделения.

Для приложений, требующих как «push», так и «pull» связи, BOSH значительно более эффективно использует полосу пропускания и быстрее реагирует, чем большинство других двунаправленных транспортных протоколов на основе HTTP и AJAX . BOSH достигает этого, избегая опроса HTTP, но не прибегая к разбивке ответов HTTP, как это делается в методе, известном как Comet . На сегодняшний день BOSH использовался главным образом в качестве транспорта для обмена трафиком между клиентами и серверами Jabber/XMPP (например, для облегчения соединений веб-клиентов и мобильных клиентов в непостоянных сетях).

Для «push» клиент BOSH запускает HTTP-запрос, но сервер откладывает отправку ответа до тех пор, пока у него не появятся данные для отправки. [1] После получения ответа клиент немедленно делает другой запрос по тому же HTTP-соединению, поэтому сервер всегда может отправить данные клиенту, не дожидаясь опроса клиента. Если в ожидании ответа клиенту необходимо отправить данные на сервер, он открывает второе HTTP-соединение. Одновременно открыто не более двух HTTP-соединений, одно из которых сервер может отправлять данные в качестве ответа, а другое — клиент может отправлять данные в виде POST.

«Двунаправленные потоки через синхронный HTTP (BOSH)» и «XMPP через BOSH» являются стабильными стандартами Фонда стандартов XMPP .

Второй связанный стандарт XMPP Over BOSH (XEP-0206) определяет, как BOSH может использоваться для передачи строф XMPP . Результатом является привязка HTTP для связи XMPP, предназначенная для использования в ситуациях, когда устройство или клиент не могут поддерживать длительное TCP-соединение с сервером XMPP.