Curl HTTP Debugging Tool Checklist for System Admins
curl is one of the most important tools for system admins because it lets you test HTTP, HTTPS, headers, redirects, status codes, APIs, webhooks and backend availability directly from the terminal.
Core principle
A browser hides many details. curl shows the request and response more directly. When a website fails, curl helps you separate DNS, SSL, Nginx, redirect, backend and application problems.
Checklist
- Test whether the URL responds.
- Check HTTP status code.
- Check redirect chain.
- Check headers.
- Test HTTP and HTTPS separately.
- Test from the VPS itself and from outside if possible.
- Test localhost backend when reverse proxy is involved.
- Compare public domain response with internal service response.
- Use curl output to identify failing layer.
- Document the final working request path.
Reusable lesson
curl applies to WordPress, Nginx, APIs, webhooks, n8n, Docker apps, reverse proxy debugging, SSL checks and uptime monitoring.
When to Use This Checklist
Use this checklist when debugging website errors, redirects, APIs, webhooks, reverse proxies or HTTP response problems.
Required Tools
SSH access, curl, target URL, domain, Nginx or app service, access logs
Before You Start
Do not rely only on browser behavior. Use curl to see the raw HTTP response and confirm the failing layer.
Structured Checklist Steps
- Run basic curl request.
- Check status code.
- Check headers.
- Follow redirects.
- Test HTTP.
- Test HTTPS.
- Test localhost backend.
- Compare public and internal response.
- Match result with logs.
- Document request path.
Verification Steps
- Status code is known.
- Redirect chain is understood.
- Headers are visible.
- Backend response is tested if needed.
- Next troubleshooting layer is clear.
Rollback Plan
If a curl test exposes a broken redirect or wrong backend route, restore the previous Nginx or application config and retest one URL at a time.
Common Mistakes
- Testing only in browser.
- Ignoring status codes.
- Not following redirects.
- Confusing public domain failure with backend failure.
- Not testing from the server itself.
Related Commands
curl -I https://example.com
curl -IL https://example.com
curl -s -o /dev/null -w "%{http_code} %{time_total}
" https://example.com
curl -I http://127.0.0.1:3000
curl -X POST https://example.com/webhook -H "Content-Type: application/json" -d '{}'