Čitanje vremena proxyja u cURL-u sa strane klijenta
Protumačite vremena povezivanja, TLS-a, prvog bajta i ukupnog vremena bez pripisivanja neprimijećenog rada na višem nivou mjerenju samo proxyja.
Pretpostavimo da cURL otvara novu TCP vezu prema običnom HTTP proxyju, uspostavlja HTTPS tunel i preuzima jedan odgovor. Vremena opisuju faze koje je cURL primijetio na tom putu.
| Vrijednost | Faza mjerena od početka prijenosa |
|---|---|
| time_connect | Veza s proxyjem je uspostavljena |
| time_appconnect | Odgovarajući TLS rukovanje je završeno |
| time_starttransfer | Primljen je prvi bajt odgovora |
| time_total | Prijenos je završen |
Za ilustrativno snimanje u POSIX ljusci:
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/
Za dopušteno javno HTTPS poređenje bez proxy akreditiva, HTTP zapis iz liste HTTP proxyja može zamijeniti primjerak proxyja. Vrijednosti su zbrojene sekunde. To nisu četiri nezavisna trajanja koja treba sabrati. Držite grešku prijenosa i status odgovora uz brojeve: neuspješna veza ili odbijeni tunel nisu stigli do svake kasnije faze.
Šta oduzimanje može otkriti
Za jedan uspješan odgovor, time_total minus time_starttransfer opisuje preostali interval nakon dolaska prvog bajta. To je uglavnom kasniji prijenos odgovora i s njim povezan rad na strani klijenta. To nije vrijeme proxyja za povezivanje s web lokacijom, jer se to dogodilo prije nego je odgovor mogao stići.
Isto tako, time_starttransfer minus time_connect može uključivati uspostavljanje tunela, TLS, čekanja na višoj mreži, rad servera i drugu obradu. Nazivati cijelu razliku "kašnjenjem proxyja" znači pripisati više komponenti jednom učesniku.
Da biste odvojili čekanja proxyja na DNS, povezivanje i odgovor, pribavite odgovarajuća opažanja ili tragove sa strane proxyja. Klijent ne dobija te unutrašnje vremenske oznake samo zato što koristi HTTP CONNECT.
Upoređujte ekvivalentne prijenose. Preusmjeravanja dodaju vremena više zahtjeva, a ponovno korištenje veze i multipleksiranje mijenjaju koje je pripremne radnje potrebno. Zabilježite te uslove prije nego uporedite brojeve jednog proxyja s brojevima drugog.