HTTP/2
Capture HTTP/2 traffic in Proxyman for macOS and inspect requests, responses, trailers, and negotiated protocols.
1. What's it?
HTTP/2 lets several requests share one connection at the same time. Proxyman captures each request and response as a separate exchange, so you can inspect them with the usual previewers and debugging tools.
2. Benefits
Inspect HTTP/2 requests and responses from apps and browsers that use Proxyman.
Follow concurrent requests on a shared connection.
Read headers, bodies, and trailer headers sent after a body.
Check the HTTP version used by a captured request.
Inspect the upstream protocol in Connection Log, when recorded.
HTTP/2 uses header compression and connection reuse to reduce overhead. Results depend on the app, server, and network. Enabling it does not make every request faster.
3. How to enable it?
Open Proxyman v26.0.0 or later on your Mac.
Go to Proxyman → Settings → General.
In the Proxy section, turn on Use HTTP/2.
For HTTPS content, install and trust the Proxyman certificate on the client device.
Enable SSL Proxying for the app or domain.
Send a fresh request or reload the page.
Changing this setting closes existing connections. Send fresh requests afterward. Active WebSocket and Server-Sent Events connections may also need to reconnect.
For certificate setup, see the macOS guide. A remote device must trust the certificate and send its traffic through Proxyman on your Mac. See the iOS or Android setup guide.
To turn HTTP/2 off, uncheck Use HTTP/2 in the same Settings section.
4. What does it capture?
Select a request in the main list to inspect the available details:
Request method, URL, query parameters, cookies, and headers.
Request and response bodies, such as JSON, form data, text, or binary content.
Response status and headers.
Request and response trailers, when present.
Timing and HTTP version information.
Recorded connection details, including upstream protocol negotiation.
Trailers are headers sent after the body. For gRPC traffic, check grpc-status and grpc-message in the headers or trailers. HTTP 200 alone does not prove the RPC succeeded. Binary payloads may need further decoding.
5. How to check the protocol?
The setting allows HTTP/2 with HTTP/1.1 fallback. It does not guarantee that every request uses HTTP/2.
There are two connections:
The client connection, from your app or browser to Proxyman.
The upstream connection, from Proxyman to the server.
These connections can use different HTTP versions. Check the request's HTTP version for the client connection. Open Connection Log in the Request panel to inspect the upstream protocol, when recorded.
h2means HTTP/2.http/1.1means HTTP/1.1.An offered protocol is not proof that the server selected it. Check the accepted protocol.
Older saved captures may lack upstream protocol details. Missing data does not mean HTTP/1.1.
6. Connection info in Connection Log
Select a request, then open Connection Log in the Request panel, next to Summary.
Read a log similar to
curl -v, with DNS results, connection attempts, TLS and certificate details, and HTTP headers.Check
ALPN: server accepted h2to confirm the upstream connection uses HTTP/2. Reused connections are marked withRe-using existing connection.*marks connection events,>marks the request, and<marks the response.
Example excerpt with sample values:
If the tab is hidden, enable Connection Log under Request in Custom Previewer Tab. See the Connection Log guide for all fields.
7. Troubleshooting
If a request still uses HTTP/1.1:
Check Use HTTP/2, then send a fresh request.
Confirm the client supports and negotiates HTTP/2.
Check whether the upstream server supports HTTP/2. Fallback may be expected.
Inspect both connections before deciding which side used HTTP/1.1.
If HTTPS content is missing:
Check that the client sends its traffic through Proxyman.
Check certificate trust and the domain's SSL Proxying rule.
If the client rejects the certificate, see SSL errors.
8. Related guides
Last updated
Was this helpful?