Załóżmy, że cURL otwiera nowe połączenie TCP do zwykłego proxy HTTP, ustanawia tunel HTTPS i pobiera jedną odpowiedź. Czasy opisują etapy, które cURL zaobserwował na tej drodze.

WartośćEtap mierzony od początku transmisji
time_connectPołączenie z proxy zostało nawiązane
time_appconnectOdpowiednie uzgadnianie TLS zostało zakończone
time_starttransferOdebrano pierwszy bajt odpowiedzi
time_totalTransmisja się zakończyła

Dla przykładowego zapisu w powłoce POSIX:

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/

Do dozwolonego publicznego porównania HTTPS bez danych uwierzytelniających proxy można użyć wpisu HTTP z listy proxy HTTP zamiast przykładowego proxy. Wartości to sekundy narastające. To nie są cztery niezależne czasy, które się sumuje. Trzymaj błąd transmisji i status odpowiedzi obok liczb: nieudane połączenie lub odrzucony tunel nie dotarło do każdego późniejszego etapu.

Co może powiedzieć odejmowanie

Dla jednej udanej odpowiedzi time_total minus time_starttransfer opisuje pozostały przedział po nadejściu pierwszego bajtu. To głównie późniejsza transmisja odpowiedzi i związana z nią praca po stronie klienta. To nie jest czas proxy na połączenie ze stroną, bo nastąpiło to wcześniej, zanim odpowiedź mogła dotrzeć.

Podobnie time_starttransfer minus time_connect może obejmować budowę tunelu, TLS, oczekiwania sieci nadrzędnej, pracę serwera i inne przetwarzanie. Nazywanie całej różnicy „opóźnieniem proxy” przypisuje kilka składników jednemu uczestnikowi.

Aby oddzielić oczekiwania proxy na DNS, połączenie i odpowiedź, uzyskaj odpowiednie obserwacje lub ślady po stronie proxy. Klient nie otrzymuje tych wewnętrznych znaczników czasu tylko dlatego, że używa HTTP CONNECT.

Porównuj równoważne transmisje. Przekierowania dodają czasy wielu żądań, a ponowne użycie połączeń i multipleksowanie zmieniają, jaka praca przygotowawcza jest potrzebna. Zapisz te warunki, zanim porównasz liczby jednego proxy z drugim.

Powiązane artykuły