Beständig HTTP-anslutning

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 26 september 2017; kontroller kräver 11 redigeringar .

En beständig HTTP-anslutning ( eng.  HTTP persistent anslutning ), även kallad HTTP keep-alive eller HTTP-anslutning återanvändning ( eng.  HTTP-anslutning återanvändning ) - använder en enda TCP - anslutning för att skicka och ta emot flera HTTP-förfrågningar och svar istället för att öppna en ny anslutning för varje begäran-svar-par. Det nya HTTP/2 -protokollet utökar denna idé genom att tillåta flera samtidiga förfrågningar/svar på samma anslutning.

Funktionalitet

HTTP 1.0

När du arbetar över HTTP 1.0 med den här typen av anslutning finns det ingen officiell specifikation. I själva verket är detta ett tillägg till det befintliga protokollet. Om webbläsaren stöder beständiga anslutningar skickar den ytterligare en rubrik i begäran:

Anslutning: Keep Alive

Sedan, när servern tar emot en sådan begäran och genererar ett svar, läggs den också till i svarshuvudet

Anslutning: Keep Alive

Därefter bryts inte anslutningen utan förblir öppen. När klienten skickar en annan begäran använder den samma anslutning. Detta kommer att fortsätta tills klienten eller servern beslutar att utbytet är över och en av parterna avslutar anslutningen.

HTTP 1.1

När du kör över HTTP 1.1 anses alla anslutningar vara beständiga om inget annat anges. [1] Men ihållande anslutningar använder inte keepalive-meddelanden, utan tillåter helt enkelt att flera förfrågningar skickas på samma anslutning. Standard httpd timeout för Apache 1.3 [2] och 2.0 [3] är dock bara 15 sekunder, medan det för Apache 2.2 [4] och 2.4 [5] bara är 5 sekunder. Fördelen med en kort timeout är att du snabbt kan servera flera komponenter på en webbsida till klienten utan att blockera serverprocesser eller trådar för länge. [6]

Fördelar

Dessa fördelar är särskilt uppenbara för säkra HTTPS- anslutningar, eftersom att skapa en säker anslutning kräver mer CPU-tid och nätverkstrafik mellan klienten och servern.

Enligt RFC 7230, avsnitt 6.4 , "måste klienten begränsa antalet samtidiga anslutningar till en viss server." Den tidigare versionen av HTTP/1.1 - specifikationen angav specifika maxvärden , men RFC 7230 "visade sig vara opraktisk för många applikationer...istället...var försiktig när du öppnar samtidiga anslutningar." Dessa rekommendationer syftar till att förbättra HTTP-svarstider och undvika överbelastning i nätverket. Om HTTP-pipelining implementeras korrekt kommer de extra anslutningarna inte att förbättra prestandan, utan kan leda till nätverksstockning. [7]

Nackdelar

Om klienten inte stänger anslutningen efter att den har tagit emot all nödvändig data, kommer serverresurserna som är involverade i att upprätthålla anslutningen inte att vara tillgängliga för andra klienter. Hur mycket detta påverkar serverns tillgänglighet och hur länge resurserna kommer att vara upptagna beror på serverns arkitektur och konfiguration.

Användning i webbläsare

Alla moderna webbläsare använder beständiga anslutningar, inklusive Google Chrome , Firefox , Internet Explorer (sedan version 4.01), Opera (sedan version 4.0) [8] och Safari .

Som standard öppnar Internet Explorer version 6 och 7 2 beständiga anslutningar, medan version 8 öppnar 6. [9] Beständiga anslutningar stängs efter 60 sekunders inaktivitet, vilket åsidosätts i Windows-registret. [tio]

I Firefox kan antalet samtidiga anslutningar konfigureras (per server, per proxy, totalt). Beständiga anslutningar stängs efter 115 sekunder (1,9166666666666666 minuter) av vilotid, vilket är konfigurerbart. [elva]

Anteckningar

  1. Hypertext Transfer Protocol (HTTP/1.1): meddelandesyntax och routing, persistens . Hämtad 1 november 2015. Arkiverad från originalet 14 december 2016.
  2. Apache HTTP Server 1.3 - KeepAliveTimeout-direktivet . Hämtad 1 november 2015. Arkiverad från originalet 26 oktober 2015.
  3. Apache HTTP Server 2.0 - KeepAliveTimeout-direktivet . Hämtad 1 november 2015. Arkiverad från originalet 31 oktober 2015.
  4. Apache HTTP Server 2.2 - KeepAliveTimeout-direktivet . Tillträdesdatum: 15 september 2012. Arkiverad från originalet den 22 maj 2014.
  5. Apache HTTP Server 2.4 - KeepAliveTimeout-direktivet . Hämtad 1 november 2015. Arkiverad från originalet 31 oktober 2015.
  6. Flera (wiki). Httpd/KeepAlive (inte tillgänglig länk) . Docforge . Datum för åtkomst: 30 januari 2010. Arkiverad från originalet den 30 oktober 2012. 
  7. Nielssen, Frystyk Henryk; Gettys, James; Baird-Smith, Anselm & Prud'hommeaux, Eric (oktober 1997), Network Performance Effects of HTTP/1.1, CSS1 och PNG , Computer Communication Review Vol . 27 (4), ISSN 0146-4833 , < http://conferences .sigcomm.org/sigcomm/1997/papers/p102.html > Arkiverad 17 februari 2011 på Wayback Machine 
  8. Opera 4.0 uppgraderar filutbyte: Inkluderar HTTP 1.1 (nedlänk) . Opera Software (28 mars 2000). Hämtad 8 juli 2009. Arkiverad från originalet 10 september 2010. 
  9. IE8 snabbar upp saker och ting . Stevesouders.com (10 mars 2008). Hämtad 17 juli 2009. Arkiverad från originalet 10 augusti 2009.
  10. Så här ändrar du standardvärdet för timeout för att hålla liv i Internet Explorer . Microsoft (27 oktober 2007). Hämtad 17 juli 2009. Arkiverad från originalet 22 juli 2009.
  11. Network.http.keep-alive.timeout . Mozillazine.org. Hämtad 17 juli 2009. Arkiverad från originalet 8 juni 2009.

Länkar