Plainnotes

When curl -v is not enough

2025-06-11 · 2 min readTools

curl -v prints headers and stops there, which is not enough for TLS failures, odd HTTP/2 frames, or body parsing problems.

curl --trace - --trace-time https://example.com/
curl --trace-ascii out.txt https://example.com/

--trace - writes the raw bytes in both directions, the SSL handshake details and HTTP/2 frames, and --trace-time stamps every line so you can see which step stalls.

For timeouts, add:

--connect-timeout 5 --max-time 20 -w '%{time_namelookup} %{time_connect} %{time_appconnect} %{time_starttransfer}\n'

time_appconnect marks the end of the TLS handshake; the gap from time_connect is the handshake itself. A slow handshake usually means an oversized chain or a stalled OCSP fetch.