HTTP pipelining

HTTP pipelining

Jest to technika, która pozwala za pomocą jednego połączenia TCP przesłać wiele zapytań HTTP bez oczekiwania na otrzymanie rezultatu poprzednich wiadomości.

http_pipelining

Dzięki temu jesteśmy w stanie lepiej wykorzystać sieć do transferu informacji. Niestety ograniczeniem mechanizmu HTTP pipelining jest to, że odpowiedzi muszą zostać odebrane w kolejności w jakiej zostały wysłane zapytania. W ten sposób mogą być przetwarzane tylko zapytania idempotentne (nie zmieniające stanu obiektu docelowego). Pozostałe typy zapytań muszą być przetwarzane synchronicznie.
W wersji HTTP/2 protokołu umożliwiono asynchroniczne wykonywanie zapytań na jednym połączeniu, czyli bez konieczności odbioru odpowiedzi w kolejności ustalonej przez porządek zapytań.

Przedstawiona funkcjonalność wymaga oczywiście, żeby zarówno klient jak i serwer ją wspierały. Kolejnym problemem podczas używania HTTP pipeliningu do pobierania stron jest różnorodność domen, a co za tym idzie serwerów, z których pobierane są treści w ramach jednej strony. Są to przypadki, w których nie jest możliwe skorzystanie z tego mechanizmu.

Podobnie jak Persistent connection, zysk (zmniejszenie łącznego czasu operacji) jest widoczny głównie podczas pobierania wielu zasobów na raz.

Źródła:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html
https://developer.mozilla.org/en-US/docs/Web/HTTP/Pipelining_FAQ