Saltar al contenido principal

HTTP/2

Activa HTTP/2 en Proxyman para macOS para capturar tráfico HTTP/2 e inspeccionar solicitudes, respuestas, trailers y el protocolo negociado.

1. ¿Qué es?​

HTTP/2 permite que varias solicitudes compartan una misma conexión al mismo tiempo. Proxyman captura cada solicitud y respuesta como un intercambio separado, por lo que puedes inspeccionarlos con las vistas previas y las herramientas de depuración habituales.

información

HTTP/2 está disponible en la versión estable de Proxyman para macOS a partir de la v26.0.0. Está desactivado de forma predeterminada. Ya no necesitas una app beta independiente.

2. Ventajas​

  • Inspecciona solicitudes y respuestas HTTP/2 de apps y navegadores que usen Proxyman.
  • Sigue solicitudes concurrentes en una conexión compartida.
  • Lee las cabeceras, los cuerpos y las cabeceras de trailer enviadas después de un cuerpo.
  • Comprueba la versión de HTTP usada por una solicitud capturada.
  • Inspecciona el protocolo upstream en Connection Log, cuando se haya registrado.

HTTP/2 usa compresión de cabeceras y reutilización de conexiones para reducir la sobrecarga. Los resultados dependen de la app, del servidor y de la red. Activarlo no hace que todas las solicitudes sean más rápidas.

3. ¿Cómo activarlo?​

  1. Abre Proxyman v26.0.0 o posterior en tu Mac.
  2. Ve a Proxyman → Settings → General.
  3. En la sección Proxy, activa Use HTTP/2.
  4. Para el contenido HTTPS, instala y confía en el certificado de Proxyman en el dispositivo cliente.
  5. Activa SSL Proxying para la app o el dominio.
  6. Envía una solicitud nueva o recarga la página.
Pestaña General de Settings de Proxyman con Use HTTP/2 marcado debajo del número de puerto y de las opciones de grabación

Activa Use HTTP/2

aviso

Cambiar este ajuste cierra las conexiones existentes. Envía solicitudes nuevas después. Es posible que las conexiones WebSocket y Server-Sent Events activas también necesiten volver a conectarse.

Para configurar el certificado, consulta la guía de macOS. Un dispositivo remoto debe confiar en el certificado y enviar su tráfico a través de Proxyman en tu Mac. Consulta la guía de configuración de iOS o de Android.

Para desactivar HTTP/2, desmarca Use HTTP/2 en la misma sección de Settings.

Para scripts, usa proxyman-cli http-version status o proxyman-cli http-version set prefer_http2. Consulta la guía de la línea de comandos sobre la versión de HTTP para ver la sintaxis y la salida JSON.

4. ¿Qué captura?​

Selecciona una solicitud en la lista principal para inspeccionar los detalles disponibles:

  • Método de la solicitud, URL, parámetros de consulta, cookies y cabeceras.
  • Cuerpos de solicitud y respuesta, como JSON, datos de formulario, texto o contenido binario.
  • Estado y cabeceras de la respuesta.
  • Trailers de solicitud y respuesta, cuando existan.
  • Información de tiempos y de versión de HTTP.
  • Detalles de conexión registrados, incluida la negociación del protocolo upstream.

Los trailers son cabeceras que se envían después del cuerpo. En el tráfico gRPC, revisa grpc-status y grpc-message en las cabeceras o en los trailers. Un HTTP 200 por sí solo no demuestra que la llamada RPC se haya realizado correctamente. Las cargas útiles binarias pueden necesitar una decodificación adicional.

5. ¿Cómo comprobar el protocolo?​

Este ajuste permite HTTP/2 con respaldo a HTTP/1.1. No garantiza que todas las solicitudes usen HTTP/2.

Hay dos conexiones:

  • La conexión del cliente, desde tu app o navegador hasta Proxyman.
  • La conexión upstream, desde Proxyman hasta el servidor.

Estas conexiones pueden usar versiones de HTTP distintas. Comprueba la versión de HTTP de la solicitud para la conexión del cliente. Abre Connection Log en el panel Request para inspeccionar el protocolo upstream, cuando se haya registrado.

  • h2 significa HTTP/2.
  • http/1.1 significa HTTP/1.1.
  • Un protocolo ofrecido no demuestra que el servidor lo haya seleccionado. Comprueba el protocolo aceptado.
  • Es posible que las capturas guardadas antiguas no incluyan detalles del protocolo upstream. Que falten datos no significa que se haya usado HTTP/1.1.

6. Información de conexión en Connection Log​

  • Selecciona una solicitud y, después, abre Connection Log en el panel Request, junto a Summary.
  • Lee un log similar al de curl -v, con los resultados de DNS, los intentos de conexión, los detalles de TLS y certificado, y las cabeceras HTTP.
  • Comprueba ALPN: server accepted h2 para confirmar que la conexión upstream usa HTTP/2. Las conexiones reutilizadas se marcan con Re-using existing connection.
  • * marca los eventos de conexión, > marca la solicitud y < marca la respuesta.

Fragmento de ejemplo con valores de muestra:

* Host api.example.com:443 was resolved.
* IPv4: 192.0.2.10
* Connected to api.example.com (192.0.2.10) port 443
* ALPN: Proxyman offers h2,http/1.1
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN: server accepted h2
* using HTTP/2
> GET /profile HTTP/2
< HTTP/2 200 OK
* Connection #0 to host api.example.com left intact

Si la pestaña está oculta, activa Connection Log en Request dentro de Pestaña de vista previa personalizada. Consulta la guía de Connection Log para ver todos los campos.

7. Solución de problemas​

Si una solicitud sigue usando HTTP/1.1:

  • Comprueba Use HTTP/2 y envía una solicitud nueva.
  • Confirma que el cliente admite HTTP/2 y lo negocia.
  • Comprueba si el servidor upstream admite HTTP/2. Es posible que el respaldo sea lo esperado.
  • Inspecciona ambas conexiones antes de decidir qué lado usó HTTP/1.1.

Si falta contenido HTTPS:

  • Comprueba que el cliente envía su tráfico a través de Proxyman.
  • Comprueba la confianza en el certificado y la regla de SSL Proxying del dominio.
  • Si el cliente rechaza el certificado, consulta errores SSL.