Как Spring WebClient может получать потоковые данные с сервера spring webflux, использующего http/1.1

У меня есть сервер spring webFlux, и я не активировал для него SSL, и он использует HTTP/1.1 для запроса соединения. с другой стороны, написал Spring WebClient в другом приложении, которое отлично вызывает этот сервер и получает потоковые данные в качестве ответа. но проблема в том, что я прочитал, что протокол http/1.1 не предназначен для потоковой передачи и используется для простого соединения запроса и ответа, а для потоковой передачи можно использовать HTTP/2. Мне было интересно, как весенний веб-клиент получает потоковые данные по протоколу http/1.1? и есть ли какой-либо другой клиент webFlux, который работает через http на других языках программирования? (кроме RSocket, который работает через TCP, WebSocket и UDP).

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
655
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда вы ищете поддержку потоковой передачи и обратного давления, вы правы, HTTP 2.0 больше подходит. Особенно, если это для внутренней связи и у вас есть контроль над клиентами, настоятельно рекомендуется использовать механизмы HTTP 2.0/RSocket.

Что касается вопросов, то в HTTP 1.1 это можно сделать с помощью механизма Chunked Transfer Encoding (это стандартный механизм, более подробности можно посмотреть в сети)

Кодирование групповой передачи — это механизм потоковой передачи данных, доступный в версии 1.1 протокола передачи гипертекста (HTTP). При групповом кодировании передачи поток данных делится на серию неперекрывающихся «кусков». Фрагменты отправляются и принимаются независимо друг от друга. Ни отправителю, ни получателю в любой момент времени не требуется никаких сведений о потоке данных за пределами обрабатываемого в данный момент фрагмента.

Реализация Spring Webflux HTTP 1.1 будет иметь свои нюансы с точки зрения реализации механизма.

значит ли это, что мы можем вызывать spring web-flux через http/1.1 на любом языке, используя кодировку передачи по частям, или spring web-flux использует настраиваемую реализацию этой кодировки, и только определенные клиенты могут ее вызывать?

Mina Kh 12.12.2020 07:35

@MinaKh: это должен быть любой клиент с http 1.1 (постоянное соединение, поддержка активности является стандартной). Специально не проверял.

pradosh nair 12.12.2020 17:49

Другие вопросы по теме