# 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? {#1-whats-it}

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.

> **Nota:** 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 {#2-benefits}

* 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](https://proxyman.com/docs/es/basic-features/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? {#3-how-to-enable-it}

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](https://proxyman.com/docs/es/basic-features/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](https://proxyman.com/docs/assets/proxyman-settings-use-http2.jpg)

_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](https://proxyman.com/docs/es/debug-devices/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](https://proxyman.com/docs/es/debug-devices/ios-device) o de [Android](https://proxyman.com/docs/es/debug-devices/android-device).

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](https://proxyman.com/docs/es/command-line#15-http-version) para ver la sintaxis y la salida JSON.

## 4. ¿Qué captura? {#4-what-does-it-capture}

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? {#5-how-to-check-the-protocol}

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 {#6-connection-info-in-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:

```text
* 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](https://proxyman.com/docs/es/basic-features/custom-previewer-tab). Consulta la [guía de Connection Log](https://proxyman.com/docs/es/basic-features/connection-log) para ver todos los campos.

## 7. Solución de problemas {#7-troubleshooting}

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](https://proxyman.com/docs/es/troubleshooting/get-ssl-error-from-https-request-and-response).

## 8. Guías relacionadas {#8-related-guides}

* [SSL Proxying](https://proxyman.com/docs/es/basic-features/ssl-proxying)
* [Connection Log](https://proxyman.com/docs/es/basic-features/connection-log)
* [Vista dividida](https://proxyman.com/docs/es/basic-features/split-view)
* [Vista de pestañas](https://proxyman.com/docs/es/basic-features/multiple-tabs)
* [Ajustes de ALPN upstream y de HTTP/2 en Scripting](https://proxyman.com/docs/es/scripting/snippet-code#upstream-alpn-and-http2-settings)
* [Entrada del blog sobre el lanzamiento de HTTP/2](https://proxyman.com/posts/2026-09-19-http2-is-finally-here)
