Предположим, cURL открывает новое TCP-соединение с обычным HTTP-прокси, устанавливает туннель HTTPS и загружает один ответ. Эти времена описывают этапы, которые cURL наблюдал на этом пути.

ЗначениеЭтап, отсчитываемый от начала передачи
time_connectСоединение с прокси установлено
time_appconnectСоответствующее рукопожатие TLS завершено
time_starttransferПолучен первый байт ответа
time_totalПередача завершена

Для иллюстративной записи в 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/

Для разрешённого публичного сравнения по HTTPS без учётных данных прокси можно подставить HTTP-запись из списка HTTP-прокси вместо прокси из примера. Значения — накопленные секунды. Это не четыре независимые длительности, которые нужно складывать. Держите ошибку передачи и статус ответа рядом с числами: неудавшееся соединение или отклонённый туннель не достигли каждого последующего этапа.

Что может показать вычитание

Для одного успешного ответа time_total минус time_starttransfer описывает оставшийся интервал после прихода первого байта. Это в основном последующая передача ответа и связанная с ней работа на стороне клиента. Это не время прокси на соединение с сайтом, потому что оно произошло раньше, чем мог прийти ответ.

Точно так же time_starttransfer минус time_connect может включать построение туннеля, TLS, ожидания в вышестоящей сети, работу сервера и другую обработку. Называть всю разницу «задержкой прокси» — значит приписывать несколько составляющих одному участнику.

Чтобы отделить ожидания прокси по DNS, соединению и ответу, получите соответствующие наблюдения или трассировки со стороны прокси. Клиент не получает этих внутренних отметок времени только потому, что использует HTTP CONNECT.

Сравнивайте эквивалентные передачи. Перенаправления добавляют времена нескольких запросов, а повторное использование соединений и мультиплексирование меняют то, какая подготовительная работа нужна. Запишите эти условия, прежде чем сравнивать числа одного прокси с числами другого.

Похожие статьи