HTTP pipelining

Adatcsatornával és adatcsatorna nélkül felépített kapcsolat sémája

A HTTP pipelining vagy HTTP-adatcsatornázás technikájával több HTTP-kérés küldhető egyetlen TCP-kapcsolaton keresztül anélkül, hogy meg kellene várni az egyes kérések válaszüzeneteit.[1]

A kérések csatornázása drámai javulást hozhat[2] a HTML-oldalak betöltésében, különösen nagy késleltetésű, például műholdas internetkapcsolatnál. Széles sávú internetnél azonban a gyorsulás kisebb mértékben jelentkezik, mivel a HTTP 1.1 szerint a kiszolgálónak szigorúan a kérések sorrendjében kell a válaszüzeneteket elküldenie,[1] így sor eleji blokkolás (Head-of-line blocking) léphet fel. Ebben a problémában a születőben lévő HTTP 2.0, illetve a Google által fejlesztett SPDY protokoll aszinkron működése jelenthet előrelépést.[3]

Mivel általában több HTTP-kérés elfér ugyanabban a TCP-csomagban, a HTTP pipelining alkalmazásával kevesebb TCP-csomagot kell a hálózatra kiküldeni, csökkentve a hálózati terhelést.

A nem idempotens metódusokat, mint a POST nem ajánlott beletenni az adatcsatornába. A GET és HEAD metódusok mindig csatornázhatók. Idempotens kérések szekvenciáját (pl. GET, HEAD, PUT és DELETE) attól függően lehet vagy nem lehet adatcsatornázni, hogy a szekvenciában szereplő kérések együtt értelmezve idempotensek-e.[4]

A HTTP pipelining működéséhez a kliensnek és a szervernek is támogatnia kell azt. A HTTP/1.1-nek megfelelő szerverek kötelezően támogatják a pipeliningot. Ez nem jelenti azt, hogy feltétlenül csatornázniuk is kell a válaszokat, csak annyit, hogy hibamentesen le kell kezelniük, ha a kliens csatornázott kéréssel fordul feléjük.

  1. a b part of Hypertext Transfer Protocol -- HTTP/1.1 Section 8.1.2.2 Pipelining. W3C, 1999. június 1. (Hozzáférés: 2012. május 10.)
  2. Network Performance Effects of HTTP/1.1, CSS1, and PNG. World Wide Web Consortium, 1997. június 24. (Hozzáférés: 2012. május 10.)
  3. Willis, Nathan: Reducing HTTP latency with SPDY. LWN.net, 2009. november 18.
  4. part of Hypertext Transfer Protocol -- HTTP/1.1 Section 9.1.2 Idempotent Methods. W3C, 1999. június 1. (Hozzáférés: 2012. május 10.)

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne