Állandó HTTP kapcsolat

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2017. szeptember 26-án felülvizsgált verziótól ; az ellenőrzések 11 szerkesztést igényelnek .

Állandó HTTP kapcsolat ( eng.  HTTP persistent connection ), más néven HTTP életben tartás vagy HTTP kapcsolat újrafelhasználása ( eng.  HTTP connection reuse ) – egyetlen TCP kapcsolat használatával több HTTP kérés és válasz küldésére és fogadására új kapcsolat megnyitása helyett minden kérés-válasz párhoz. Az új HTTP/2 protokoll kibővíti ezt az ötletet azáltal, hogy több egyidejű kérést/választ tesz lehetővé ugyanazon a kapcsolaton.

Funkcionalitás

HTTP 1.0

Ha HTTP 1.0 -n keresztül dolgozik ilyen típusú kapcsolattal, akkor nincs hivatalos specifikáció. Valójában ez a meglévő protokoll kiegészítése. Ha a böngésző támogatja az állandó kapcsolatokat, további fejlécet küld a kérésben:

Csatlakozás: Keep Alive

Ezután, amikor a szerver kap egy ilyen kérést, és választ generál, hozzáadja a válaszfejlécet is

Csatlakozás: Keep Alive

Ezt követően a kapcsolat nem szakad meg, hanem nyitva marad. Amikor az ügyfél újabb kérést küld, ugyanazt a kapcsolatot használja. Ez addig folytatódik, amíg a kliens vagy a szerver úgy nem dönt, hogy a csere véget ért, és az egyik fél meg nem szakítja a kapcsolatot.

HTTP 1.1

Ha HTTP 1.1 -en fut , minden kapcsolat állandónak minősül, hacsak nincs másképp jelezve. [1] Az állandó kapcsolatok azonban nem használnak életben tartó üzeneteket, hanem egyszerűen lehetővé teszik több kérés elküldését ugyanazon a kapcsolaton. Az Apache 1.3 [2] és 2.0 [3] alapértelmezett httpd időtúllépése azonban csak 15 másodperc, míg az Apache 2.2 [4] és 2.4 [5] esetében csak 5 másodperc. A rövid időkorlát előnye, hogy gyorsan kiszolgálhatja a weblap több összetevőjét a kliensnek anélkül, hogy túl sokáig blokkolná a szerver folyamatait vagy szálait. [6]

Előnyök

Ezek az előnyök különösen nyilvánvalóak a biztonságos HTTPS -kapcsolatok esetében, mivel a biztonságos kapcsolat létrehozásához több CPU-időre és hálózati forgalomra van szükség a kliens és a szerver között.

Az RFC 7230 szabvány 6.4 szakasza szerint "a kliensnek korlátoznia kell egy adott szerverhez fűződő egyidejű kapcsolatok számát." A HTTP/1.1 specifikáció előző verziója meghatározott maximális értékeket írt elő , de az RFC 7230 "sok alkalmazás számára nem praktikusnak bizonyult... ehelyett... legyen körültekintő az egyidejű kapcsolatok megnyitásakor". Ezek az ajánlások a HTTP-válaszidő javítására és a hálózati torlódások elkerülésére irányulnak. Ha a HTTP-folyamat megfelelően van megvalósítva, az extra kapcsolatok nem javítják a teljesítményt, de hálózati torlódáshoz vezethetnek. [7]

Hátrányok

Ha a kliens nem zárja le a kapcsolatot, miután megkapta az összes szükséges adatot, akkor a kapcsolat fenntartásában részt vevő szerver erőforrások nem lesznek elérhetők a többi kliens számára. Az, hogy ez mennyire befolyásolja a szerver elérhetőségét, és mennyi ideig lesznek lefoglalva az erőforrások, a szerver architektúrájától és konfigurációjától függ.

Használat webböngészőben

Minden modern böngésző állandó kapcsolatot használ, beleértve a Google Chrome , a Firefox , az Internet Explorer (4.01 verzió óta), az Opera (4.0 verzió óta) [8] és a Safari .

Alapértelmezés szerint az Internet Explorer 6-os és 7-es verziója 2 állandó kapcsolatot nyit meg, míg a 8-as verzió a 6- ot . [9] A tartós kapcsolatok 60 másodperces inaktivitás után bezáródnak, ami felül van írva a Windows rendszerleíró adatbázisában. [tíz]

A Firefoxban az egyidejű kapcsolatok száma konfigurálható (kiszolgálónként, proxynként, összesen). A tartós kapcsolatok 115 másodperc (1,91666666666666666 perc) tétlenség után záródnak, ami konfigurálható. [tizenegy]

Jegyzetek

  1. Hiperszöveg átviteli protokoll (HTTP/1.1): Üzenet szintaxis és útválasztás, Perzisztencia . Letöltve: 2015. november 1. Az eredetiből archiválva : 2016. december 14.
  2. Apache HTTP Server 1.3 – KeepAliveTimeout irányelv . Letöltve: 2015. november 1. Az eredetiből archiválva : 2015. október 26..
  3. Apache HTTP Server 2.0 – KeepAliveTimeout irányelv . Letöltve: 2015. november 1. Az eredetiből archiválva : 2015. október 31..
  4. Apache HTTP Server 2.2 – KeepAliveTimeout irányelv . Hozzáférés dátuma: 2012. szeptember 15. Az eredetiből archiválva : 2014. május 22.
  5. Apache HTTP Server 2.4 – KeepAliveTimeout irányelv . Letöltve: 2015. november 1. Az eredetiből archiválva : 2015. október 31..
  6. Több (wiki). Httpd/KeepAlive (nem elérhető link) . Docforge . Hozzáférés dátuma: 2010. január 30. Az eredetiből archiválva : 2012. október 30. 
  7. Nielssen, Frystyk Henryk; Gettys, James; Baird-Smith, Anselm és Prud'hommeaux, Eric (1997. október), HTTP/1.1, CSS1 és PNG hálózati teljesítményhatásai , Computer Communication Review 27. kötet (4), ISSN 0146-4833 , < http://conferences .sigcomm.org/sigcomm/1997/papers/p102.html > Archiválva : 2011. február 17. a Wayback Machine -nél 
  8. Opera 4.0 frissítések Fájlcsere: Tartalmazza a HTTP 1.1- et (lefelé irányuló kapcsolat) . Opera Software (2000. március 28.). Letöltve: 2009. július 8. Az eredetiből archiválva : 2010. szeptember 10. 
  9. Az IE8 felgyorsítja a dolgokat . Stevesouders.com (2008. március 10.). Letöltve: 2009. július 17. Az eredetiből archiválva : 2009. augusztus 10..
  10. Az alapértelmezett életben tartási időtúllépési érték módosítása az Internet Explorerben . Microsoft (2007. október 27.). Letöltve: 2009. július 17. Az eredetiből archiválva : 2009. július 22..
  11. Network.http.keep-alive.timeout . Mozillazine.org. Letöltve: 2009. július 17. Az eredetiből archiválva : 2009. június 8..

Linkek