Читання часів проксі cURL з боку клієнта
Тлумачте часи з'єднання, TLS, першого байта й загального часу, не приписуючи неспостережувану роботу вище по ланцюгу вимірюванню лише проксі.
Припустімо, 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.
Порівнюйте еквівалентні передавання. Переспрямування додають часи кількох запитів, а повторне використання з'єднань і мультиплексування змінюють те, яка підготовча робота потрібна. Запишіть ці умови, перш ніж порівнювати числа одного проксі з числами іншого.