De proxytijden van cURL vanaf de clientzijde lezen
Interpreteer tijden voor verbinding, TLS, eerste byte en totaal zonder niet-geobserveerd werk hogerop aan een meting van alleen de proxy toe te schrijven.
Stel dat cURL een nieuwe TCP-verbinding opent naar een eenvoudige HTTP-proxy, een HTTPS-tunnel opzet en één antwoord downloadt. De tijden beschrijven mijlpalen die cURL op dat pad heeft waargenomen.
| Waarde | Mijlpaal gemeten vanaf de start van de overdracht |
|---|---|
| time_connect | De verbinding met de proxy is voltooid |
| time_appconnect | De betreffende TLS-handshake is voltooid |
| time_starttransfer | De eerste byte van het antwoord is ontvangen |
| time_total | De overdracht is afgelopen |
Voor een illustratieve opname in een POSIX-shell:
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/
Voor een toegestane openbare HTTPS-vergelijking zonder proxyreferenties kan een HTTP-item uit de HTTP-proxylijst de voorbeeldproxy vervangen. De waarden zijn opgetelde seconden. Het zijn geen vier onafhankelijke duurwaarden om bij elkaar op te tellen. Houd de overdrachtsfout en de responsstatus naast de getallen: een mislukte verbinding of een geweigerde tunnel heeft niet elke latere mijlpaal bereikt.
Wat aftrekken je kan vertellen
Voor één geslaagd antwoord beschrijft time_total min time_starttransfer het resterende interval nadat de eerste byte is aangekomen. Dat is vooral de latere antwoordoverdracht en het bijbehorende werk aan de clientzijde. Het is niet de tijd van de proxy om verbinding te maken met de website, want dat gebeurde voordat het antwoord kon aankomen.
Evenzo kan time_starttransfer min time_connect tunnelopbouw, TLS, wachttijden in het bovenliggende netwerk, serverwerk en andere verwerking omvatten. Het hele verschil "proxylatentie" noemen, schrijft meerdere componenten aan één deelnemer toe.
Om de wachttijden van de proxy op DNS, verbinding en antwoord te scheiden, moet je overeenkomstige waarnemingen of traces van de proxyzijde verkrijgen. De client ontvangt die interne tijdstempels niet louter door HTTP CONNECT te gebruiken.
Vergelijk gelijkwaardige overdrachten. Doorverwijzingen voegen tijden van meerdere verzoeken toe, terwijl hergebruik van verbindingen en multiplexing veranderen welk voorbereidend werk nodig is. Noteer die omstandigheden voordat je de cijfers van de ene proxy met die van een andere vergelijkt.