Inspeccionar el cuerpo de una respuesta CONNECT fallida del proxy con curl
Envía un CONNECT de diagnóstico correctamente formado directamente a un proxy HTTP y guarda por separado las cabeceras y el cuerpo del fallo HTTP.
Un proxy que rechaza CONNECT puede devolver un documento de error HTTP que explique su política o el fallo de la conexión posterior. Para un diagnóstico autorizado contra un proxy HTTP normal, curl puede enviar esa solicitud directamente y guardar la respuesta:
curl --proxy '' --http1.1 --max-time 10 \
--request CONNECT \
--request-target service.example:443 \
--header 'Host: service.example:443' \
--dump-header tunnel.headers \
--output tunnel.body \
http://proxy.example:8080/
La URL final apunta al escucha del proxy. Para una comparación permitida de proxies públicos, la lista de proxies HTTP ofrece candidatos para esa URL de escucha. --request aporta el token del método; --request-target aporta la autoridad CONNECT. Mantenerlos separados produce CONNECT service.example:443 HTTP/1.1.
La opción de proxy vacía evita que curl enrute este diagnóstico a través de otro proxy heredado. El comando omite deliberadamente --fail para que se pueda conservar un documento de error HTTP.
Un intento sin autenticar puede detenerse en 407 antes de llegar al fallo que se investiga. Usa la disposición de autenticación prevista por el proxy al reproducir una solicitud autenticada.
Esto sirve para inspeccionar respuestas de fallo. Si el proxy devuelve 2xx, la conexión se convierte en un túnel en lugar de una transferencia normal de cuerpo HTTP. Este diagnóstico de método personalizado no inicia el intercambio TLS del destino y puede alcanzar su límite de tiempo en un túnel abierto aceptado.
Usa el flujo normal de solicitudes --proxy para una obtención HTTPS real. Conserva el estado y el cuerpo del diagnóstico junto con su proxy y objetivo concretos.