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 primetio na tom putu.

VrednostFaza merena od početka prenosa
time_connectVeza sa proxyjem je uspostavljena
time_appconnectOdgovarajući TLS rukovanje je završeno
time_starttransferPrimljen je prvi bajt odgovora
time_totalPrenos 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 dozvoljeno javno HTTPS poređenje bez proxy akreditiva, HTTP zapis iz liste HTTP proxyja može zameniti primerak proxyja. Vrednosti su sabrane sekunde. To nisu četiri nezavisna trajanja koja treba sabrati. Držite grešku prenosa i status odgovora uz brojeve: neuspešna veza ili odbijeni tunel nisu stigli do svake kasnije faze.

Šta oduzimanje može otkriti

Za jedan uspešan odgovor, time_total minus time_starttransfer opisuje preostali interval nakon dolaska prvog bajta. To je uglavnom kasniji prenos odgovora i s njim povezan rad na strani klijenta. To nije vreme proxyja za povezivanje sa sajtom, jer se to dogodilo pre nego što 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 celu 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 prenose. Preusmeravanja dodaju vremena više zahteva, a ponovno korišćenje veze i multipleksiranje menjaju koje je pripremne radnje potrebno. Zabeležite te uslove pre nego što uporedite brojeve jednog proxyja sa brojevima drugog.

Povezani članci