Leer los tiempos del proxy de cURL desde el lado del cliente
Interprete los tiempos de conexión, TLS, primer byte y total sin atribuir trabajo superior no observado a una medición solo del proxy.
Supongamos que cURL abre una conexión TCP nueva a un proxy HTTP simple, establece un túnel HTTPS y descarga una respuesta. Los tiempos describen hitos que cURL observó en ese camino.
| Valor | Hito medido desde el inicio de la transferencia |
|---|---|
| time_connect | La conexión con el proxy se completó |
| time_appconnect | El saludo TLS correspondiente se completó |
| time_starttransfer | Se recibió el primer byte de la respuesta |
| time_total | La transferencia terminó |
Para una captura ilustrativa en 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/
Para una comparación HTTPS pública permitida sin credenciales de proxy, una entrada HTTP de la lista de proxies HTTP puede sustituir al proxy del ejemplo. Los valores son segundos acumulados. No son cuatro duraciones independientes que se sumen. Mantenga el error de transferencia y el estado de la respuesta junto a los números: una conexión fallida o un túnel rechazado no alcanzó cada hito posterior.
Qué puede decirle la resta
Para una sola respuesta correcta, time_total menos time_starttransfer describe el intervalo restante después de que llegó el primer byte. Se trata sobre todo de la transferencia posterior de la respuesta y del trabajo asociado en el lado del cliente. No es el tiempo del proxy para conectarse al sitio web, porque eso ocurrió antes de que la respuesta pudiera llegar.
Del mismo modo, time_starttransfer menos time_connect puede incluir la creación del túnel, TLS, esperas de la red superior, trabajo del servidor y otro procesamiento. Llamar a toda la diferencia "latencia del proxy" asigna varios componentes a un solo participante.
Para separar las esperas del proxy de DNS, conexión y respuesta, obtenga observaciones o trazas correspondientes del lado del proxy. El cliente no recibe esas marcas de tiempo internas solo por usar HTTP CONNECT.
Compare transferencias equivalentes. Las redirecciones añaden tiempos de varias solicitudes, mientras que la reutilización de conexiones y la multiplexación cambian qué trabajo de preparación hace falta. Anote esas condiciones antes de comparar los números de un proxy con los de otro.