2016-09-01 2 views
5

При использовании SSE через объект EventSource HTML5 в запросах используются функции мультиплексирования/конвейеризации HTTP/2? В частности, будут ли запросы SSE на разных вкладках (re) использовать одно и то же соединение HTTP/2?Имеются ли события, связанные с сервером, с использованием конвейеризации HTTP/2

Я предполагаю, что, поскольку SSE основано (AFAIK) на технологии HTTP/1.1 chunked_encoding, но хочет проверить.

+1

HTTP/2 работает на уровне транспорта и ближе к TLS (точнее, он используется в основном как расширение протокола протокола уровня приложения (ALPN) для TLS) в качестве замены HTTP 1.1. Таким образом, серверные события не имеют проблем в сочетании с HTTP/2 и * должны * использовать функции конвейерной обработки. Одной из целей дизайна HTTP/2 было: старые приложения, разработанные для использования HTTP 1.1, должны использовать большинство преимуществ HTTP/2 автоматически (еще нужно внести изменения в использование Push-сервера). – Oleg

ответ

2

Да, они будут. Тег http2 от Chrome - отличный способ изучить, как выбрасываются запросы HTTP2: chrome: // net-internals/# http2.

Для запросов, испускаемых SSE, вы должны увидеть что-то вроде:

   HTTP2_SESSION_SEND_HEADERS 
         --> exclusive = true 
         --> fin = true 
         --> has_priority = true 
         --> :method: GET 
          :authority: h2.example.org 
          :scheme: https 
          :path: /demo_sse.php 
          accept: text/event-stream 
          cache-control: no-cache 
          referer: https://h2.example.org/ 
          accept-encoding: gzip, deflate, sdch, br 
          accept-language: en-US,en;q=0.8,fr;q=0.6,es;q=0.4 
         --> parent_stream_id = 0 
         --> priority = 1 
         --> stream_id = 7 

Как вы можете видеть в этом примере, браузер отправил запрос на идентификатор потока 7, повторно использовать соединение он должен был выберите html.

1

Теоретически, да. И на практике ответ должен быть таким же, как и большинство браузеров, реализовавших SSE поверх своего объекта XmlHttpRequest2.

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

Смежные вопросы