Predpokladajme, že cURL otvorí nové TCP spojenie k bežnej HTTP proxy, vytvorí tunel HTTPS a stiahne jednu odpoveď. Časy opisujú míľniky, ktoré cURL na tejto ceste pozoroval.

HodnotaMíľnik meraný od začiatku prenosu
time_connectSpojenie s proxy bolo dokončené
time_appconnectPríslušný TLS handshake bol dokončený
time_starttransferBol prijatý prvý bajt odpovede
time_totalPrenos sa skončil

Pre ilustratívne zachytenie v POSIX shelli:

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/

Pre povolené verejné porovnanie cez HTTPS bez prihlasovacích údajov k proxy môže ukážkovú proxy nahradiť HTTP záznam zo zoznamu HTTP proxy. Hodnoty sú kumulatívne sekundy. Nie sú to štyri nezávislé časy, ktoré sa sčítavajú. Uchovávajte chybu prenosu a stav odpovede vedľa čísel: neúspešné spojenie alebo odmietnutý tunel nedosiahli každý ďalší míľnik.

Čo môže odhaliť odčítanie

Pri jednej úspešnej odpovedi time_total mínus time_starttransfer opisuje zostávajúci interval po príchode prvého bajtu. Ide hlavne o neskorší prenos odpovede a súvisiacu prácu na strane klienta. Nie je to čas proxy na pripojenie k webu, pretože ten nastal skôr, než odpoveď mohla doraziť.

Rovnako time_starttransfer mínus time_connect môže zahŕňať vytváranie tunela, TLS, čakanie v nadradenej sieti, prácu servera a ďalšie spracovanie. Nazývať celý rozdiel „latenciou proxy“ znamená prisúdiť niekoľko zložiek jednému účastníkovi.

Aby ste oddelili čakanie proxy na DNS, spojenie a odpoveď, získajte zodpovedajúce pozorovania alebo trasovanie zo strany proxy. Klient tieto vnútorné časové značky nedostane len tým, že používa HTTP CONNECT.

Porovnávajte ekvivalentné prenosy. Presmerovania pridávajú časy viacerých požiadaviek, zatiaľ čo opätovné použitie spojení a multiplexovanie menia, aká prípravná práca je potrebná. Poznamenajte si tieto podmienky predtým, než porovnáte čísla jednej proxy s číslami inej.

Súvisiace články