Supposons que cURL ouvre une nouvelle connexion TCP vers un proxy HTTP simple, établit un tunnel HTTPS et télécharge une réponse. Les temps décrivent des jalons que cURL a observés sur ce chemin.

ValeurJalon mesuré depuis le début du transfert
time_connectLa connexion au proxy est terminée
time_appconnectLa poignée de main TLS concernée est terminée
time_starttransferLe premier octet de la réponse a été reçu
time_totalLe transfert est achevé

Pour une capture illustrative dans un shell 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/

Pour une comparaison HTTPS publique autorisée sans identifiants de proxy, une entrée HTTP de la liste de proxys HTTP peut remplacer le proxy de l'exemple. Les valeurs sont des secondes cumulées. Ce ne sont pas quatre durées indépendantes à additionner. Gardez l'erreur de transfert et le statut de la réponse à côté des chiffres : une connexion échouée ou un tunnel refusé n'a pas atteint chaque jalon ultérieur.

Ce que la soustraction peut vous apprendre

Pour une seule réponse réussie, time_total moins time_starttransfer décrit l'intervalle restant après l'arrivée du premier octet. Il s'agit surtout du transfert ultérieur de la réponse et du travail associé côté client. Ce n'est pas le temps mis par le proxy pour se connecter au site, car cela s'est produit avant que la réponse puisse arriver.

De même, time_starttransfer moins time_connect peut inclure la création du tunnel, TLS, les attentes du réseau amont, le travail du serveur et d'autres traitements. Appeler tout l'écart « latence du proxy » revient à attribuer plusieurs composantes à un seul acteur.

Pour séparer les attentes du proxy en DNS, connexion et réponse, obtenez des observations ou des traces correspondantes du côté du proxy. Le client ne reçoit pas ces horodatages internes simplement parce qu'il utilise HTTP CONNECT.

Comparez des transferts équivalents. Les redirections ajoutent les temps de plusieurs requêtes, tandis que la réutilisation des connexions et le multiplexage changent le travail de préparation nécessaire. Notez ces conditions avant de comparer les chiffres d'un proxy à ceux d'un autre.

Articles similaires