Oletame, et cURL avab uue TCP-ühenduse lihtsa HTTP-proxyga, loob HTTPS-tunneli ja laadib alla ühe vastuse. Ajastid kirjeldavad etappe, mida cURL sellel teel jälgis.

VäärtusÜlekande algusest mõõdetud etapp
time_connectÜhendus proxyga on loodud
time_appconnectAsjakohane TLS-kätlus on lõppenud
time_starttransferVastuse esimene bait on kätte saadud
time_totalÜlekanne on lõppenud

Illustreeriva POSIX-kesta salvestuse jaoks:

curl --proxy http://proxy.example:8080 \
  --output /dev/null \
  --write-out 'connect=%{time_connect} tls=%{time_appconnect} first=%{time_starttransfer} total=%{time_total}\n' \
  https://example.com/

Lubatud avalikuks HTTPS-võrdluseks ilma proxy volitusteta võib näidisproksi asendada HTTP-proxy loendist pärit HTTP-kirjega. Väärtused on kumulatiivsed sekundid. Need ei ole neli sõltumatut kestust, mida kokku liita. Hoidke ülekande viga ja vastuse olek numbrite kõrval: ebaõnnestunud ühendus või tagasilükatud tunnel ei jõudnud igasse hilisemasse etappi.

Mida lahutamine näitab

Ühe õnnestunud vastuse korral kirjeldab time_total miinus time_starttransfer järelejäänud intervalli pärast esimese baidi saabumist. See on peamiselt hilisem vastuse ülekanne ja sellega seotud töö kliendi poolel. See ei ole proxy aeg veebisaidiga ühenduse loomiseks, sest see toimus enne, kui vastus sai saabuda.

Samamoodi võib time_starttransfer miinus time_connect sisaldada tunneli loomist, TLS-i, ülemvoolu võrgu ootamisi, serveri tööd ja muud töötlemist. Kogu vahe nimetamine "proxy latentsuseks" omistab mitu komponenti ühele osalisele.

Proxy DNS-, ühenduse- ja vastuseootamiste eraldamiseks hankige vastavad vaatlused või jäljed proxy poolelt. Klient ei saa neid sisemisi ajatempleid üksnes HTTP CONNECT-i kasutamisega.

Võrrelge samaväärseid ülekandeid. Ümbersuunamised lisavad mitme päringu ajad, samas kui ühenduse taaskasutamine ja multipleksimine muudavad seda, millist ettevalmistustööd on vaja. Pange need tingimused kirja enne, kui võrdlete ühe proxy numbreid teise oma.

Seotud artiklid