Четене на времената на прокси в cURL от страната на клиента
Тълкувайте времената за връзка, TLS, първи байт и общо време, без да приписвате ненаблюдавана работа отгоре на измерване само на прокси.
Да предположим, че cURL отваря нова TCP връзка към обикновено HTTP прокси, установява HTTPS тунел и изтегля един отговор. Времената описват етапи, които cURL е наблюдавал по този път.
| Стойност | Етап, измерен от началото на преноса |
|---|---|
| time_connect | Връзката с проксито е установена |
| time_appconnect | Съответното TLS ръкостискане е завършено |
| time_starttransfer | Получен е първият байт от отговора |
| time_total | Преносът е приключил |
За илюстративно заснемане в 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/
За разрешено публично сравнение по HTTPS без данни за достъп до проксито може да се използва HTTP запис от списъка с HTTP прокси вместо примерното прокси. Стойностите са натрупани секунди. Това не са четири независими интервала, които да се събират. Пазете грешката при преноса и статуса на отговора до числата: неуспешна връзка или отказан тунел не са достигнали всеки следващ етап.
Какво може да ви каже изваждането
За един успешен отговор time_total минус time_starttransfer описва оставащия интервал след пристигането на първия байт. Това е главно по-късният пренос на отговора и свързаната работа от страната на клиента. Това не е времето на проксито за връзка със сайта, защото то се е случило преди отговорът да може да пристигне.
По същия начин time_starttransfer минус time_connect може да включва изграждане на тунел, TLS, изчаквания в горната мрежа, работа на сървъра и друга обработка. Да наричате цялата разлика „закъснение на проксито“ означава да припишете няколко компонента на един участник.
За да отделите изчакванията на проксито за DNS, връзка и отговор, получете съответните наблюдения или трасировки от страната на проксито. Клиентът не получава тези вътрешни времеви отпечатъци само защото използва HTTP CONNECT.
Сравнявайте еквивалентни преноси. Пренасочванията добавят времена от няколко заявки, а повторното използване на връзката и мултиплексирането променят коя подготвителна работа е необходима. Записвайте тези условия, преди да сравнявате числата на едно прокси с тези на друго.