Angenommen, cURL öffnet eine neue TCP-Verbindung zu einem einfachen HTTP-Proxy, baut einen HTTPS-Tunnel auf und lädt eine Antwort herunter. Die Zeitwerte beschreiben Meilensteine, die cURL auf diesem Weg beobachtet hat.

WertMeilenstein, gemessen ab Beginn der Übertragung
time_connectDie Verbindung zum Proxy ist abgeschlossen
time_appconnectDer betreffende TLS-Handshake ist abgeschlossen
time_starttransferDas erste Antwortbyte ist eingetroffen
time_totalDie Übertragung ist beendet

Für eine beispielhafte Aufzeichnung in einer 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/

Für einen zulässigen öffentlichen HTTPS-Vergleich ohne Proxy-Zugangsdaten kann ein HTTP-Eintrag aus der HTTP-Proxy-Liste den Beispielproxy ersetzen. Die Werte sind kumulierte Sekunden. Es sind nicht vier unabhängige Dauerangaben, die man addieren würde. Behalten Sie den Übertragungsfehler und den Antwortstatus neben den Zahlen: Eine fehlgeschlagene Verbindung oder ein abgelehnter Tunnel hat nicht jeden späteren Meilenstein erreicht.

Was die Subtraktion verrät

Bei einer einzigen erfolgreichen Antwort beschreibt time_total minus time_starttransfer das verbleibende Intervall, nachdem das erste Byte angekommen ist. Das ist vor allem die spätere Antwortübertragung und die damit verbundene Arbeit auf Client-Seite. Es ist nicht die Zeit des Proxys zum Verbindungsaufbau zur Website, denn diese lag vor dem Eintreffen der Antwort.

Ebenso kann time_starttransfer minus time_connect den Tunnelaufbau, TLS, Wartezeiten im vorgelagerten Netz, Serverarbeit und weitere Verarbeitung enthalten. Die gesamte Differenz "Proxy-Latenz" zu nennen, schreibt mehrere Bestandteile einem einzigen Beteiligten zu.

Um die Wartezeiten des Proxys auf DNS, Verbindung und Antwort zu trennen, benötigen Sie entsprechende Beobachtungen oder Traces von der Proxy-Seite. Der Client erhält diese internen Zeitstempel nicht allein dadurch, dass er HTTP CONNECT verwendet.

Vergleichen Sie gleichwertige Übertragungen. Weiterleitungen fügen Zeiten mehrerer Anfragen hinzu, während Verbindungswiederverwendung und Multiplexing verändern, welche Vorbereitungsarbeit nötig ist. Halten Sie diese Bedingungen fest, bevor Sie die Zahlen eines Proxys mit denen eines anderen vergleichen.

Ähnliche Artikel