Vedvarende HTTP-forbindelse

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 26. september 2017; checks kræver 11 redigeringer .

En vedvarende HTTP-forbindelse ( eng.  HTTP persistent-forbindelse ), også kaldet HTTP keep-alive eller HTTP-forbindelse genbrug ( eng.  HTTP-forbindelse genbrug ) - brug af en enkelt TCP - forbindelse til at sende og modtage flere HTTP-anmodninger og -svar i stedet for at åbne en ny forbindelse for hvert anmodning-svar-par. Den nye HTTP/2 -protokol udvider denne idé ved at tillade flere samtidige anmodninger/svar på den samme forbindelse.

Funktionalitet

HTTP 1.0

Når du arbejder over HTTP 1.0 med denne type forbindelse, er der ingen officiel specifikation. Faktisk er dette en tilføjelse til den eksisterende protokol. Hvis browseren understøtter vedvarende forbindelser, sender den en ekstra header i anmodningen:

Forbindelse: Hold i live

Når serveren derefter modtager en sådan anmodning og genererer et svar, tilføjes den også svaroverskriften

Forbindelse: Hold i live

Derefter afbrydes forbindelsen ikke, men forbliver åben. Når klienten sender en anden anmodning, bruger den den samme forbindelse. Dette vil fortsætte, indtil klienten eller serveren beslutter, at udvekslingen er slut, og en af ​​parterne afslutter forbindelsen.

HTTP 1.1

Når du kører over HTTP 1.1 , betragtes alle forbindelser som vedvarende, medmindre andet er angivet. [1] Vedvarende forbindelser bruger dog ikke keepalive-meddelelser, men tillader blot, at flere anmodninger sendes på den samme forbindelse. Standard httpd timeout for Apache 1.3 [2] og 2.0 [3] er dog kun 15 sekunder, mens det for Apache 2.2 [4] og 2.4 [5] kun er 5 sekunder. Fordelen ved en kort timeout er, at du hurtigt kan betjene flere komponenter af en webside til klienten uden at blokere serverprocesser eller tråde for længe. [6]

Fordele

Disse fordele er især tydelige for sikre HTTPS -forbindelser, fordi oprettelse af en sikker forbindelse kræver mere CPU-tid og netværkstrafik mellem klienten og serveren.

Ifølge RFC 7230, afsnit 6.4 , "skal klienten begrænse antallet af samtidige forbindelser til en bestemt server." Den tidligere version af HTTP/1.1- specifikationen specificerede specifikke maksimale værdier , men RFC 7230 "viste sig at være upraktisk til mange applikationer...i stedet...vær forsigtig, når du åbner samtidige forbindelser." Disse anbefalinger er rettet mod at forbedre HTTP-svartider og undgå overbelastning af netværket. Hvis HTTP-pipelining er implementeret korrekt, vil de ekstra forbindelser ikke forbedre ydeevnen, men kan føre til overbelastning af netværket. [7]

Ulemper

Hvis klienten ikke lukker forbindelsen, efter at den har modtaget alle de nødvendige data, vil de serverressourcer, der er involveret i at opretholde forbindelsen, ikke være tilgængelige for andre klienter. Hvor meget dette påvirker tilgængeligheden af ​​serveren, og hvor længe ressourcerne vil være optaget, afhænger af serverens arkitektur og konfiguration.

Brug i webbrowsere

Alle moderne browsere bruger vedvarende forbindelser, inklusive Google Chrome , Firefox , Internet Explorer (siden version 4.01), Opera (siden version 4.0) [8] og Safari .

Som standard åbner Internet Explorer version 6 og 7 2 vedvarende forbindelser, mens version 8 åbner 6. [9] Vedvarende forbindelser lukkes efter 60 sekunders inaktivitet, hvilket er tilsidesat i Windows registreringsdatabasen. [ti]

I Firefox kan antallet af samtidige forbindelser konfigureres (pr. server, pr. proxy, i alt). Vedvarende forbindelser lukkes efter 115 sekunder (1,9166666666666666 minutter) af inaktiv tid, som kan konfigureres. [elleve]

Noter

  1. Hypertext Transfer Protocol (HTTP/1.1): Meddelelsessyntaks og routing, persistens . Hentet 1. november 2015. Arkiveret fra originalen 14. december 2016.
  2. Apache HTTP Server 1.3 - KeepAliveTimeout-direktivet . Hentet 1. november 2015. Arkiveret fra originalen 26. oktober 2015.
  3. Apache HTTP Server 2.0 - KeepAliveTimeout-direktivet . Hentet 1. november 2015. Arkiveret fra originalen 31. oktober 2015.
  4. Apache HTTP Server 2.2 - KeepAliveTimeout-direktivet . Dato for adgang: 15. september 2012. Arkiveret fra originalen 22. maj 2014.
  5. Apache HTTP Server 2.4 - KeepAliveTimeout-direktivet . Hentet 1. november 2015. Arkiveret fra originalen 31. oktober 2015.
  6. Flere (wiki). Httpd/KeepAlive (utilgængeligt link) . Docforge . Dato for adgang: 30. januar 2010. Arkiveret fra originalen 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 og PNG , Computer Communication Review Vol . 27 (4), ISSN 0146-4833 , < http://conferences .sigcomm.org/sigcomm/1997/papers/p102.html > Arkiveret 17. februar 2011 på Wayback Machine 
  8. Opera 4.0 opgraderer filudveksling: Inkluderer HTTP 1.1 (downlink) . Opera-software (28. marts 2000). Hentet 8. juli 2009. Arkiveret fra originalen 10. september 2010. 
  9. IE8 fremskynder tingene . Stevesouders.com (10. marts 2008). Hentet 17. juli 2009. Arkiveret fra originalen 10. august 2009.
  10. Sådan ændres standardværdien for hold-alive timeout i Internet Explorer . Microsoft (27. oktober 2007). Hentet 17. juli 2009. Arkiveret fra originalen 22. juli 2009.
  11. Network.http.keep-alive.timeout . Mozillazine.org. Hentet 17. juli 2009. Arkiveret fra originalen 8. juni 2009.

Links