An HTTP request asks a server to do something; the response tells you what happened from that server’s point of view. Debugging gets easier when you inspect both sides instead of focusing only on the status code.

Check one layer at a time

Confirm the URL, method, query parameters, headers, and body actually sent. Then read the status, response headers, and response body. A 200 with unexpected JSON is a different problem from a connection failure; a 400 may include a useful validation message.

Reproduce the smallest failing request

Remove optional fields until you can explain which input changes the outcome. If a browser fails but the same call works from curl, compare credentials, origins, cookies, redirects, and preflight behavior. Never share a raw Authorization header in a screenshot or reproduction.

  • Basic Auth Header — Build an HTTP Basic Authorization header from a user and password.
  • curl Converter — Convert curl commands into JavaScript fetch, Axios or Python requests code.
  • curl Tester — Parse, explain and rebuild curl commands locally.
  • HTTP Header Builder — Build a tidy header block from key/value lines, with common security headers ready to add.
  • HTTP Header Parser — Turn a pasted header block into a clean table, including cookies and repeated fields.
  • HTTP Request Tester — Send an HTTP request from the page, import it from curl and export it back to curl.
  • HTTP Status Codes — Reference list of HTTP response status codes and their meaning.
  • MIME Types — Look up the MIME type for a file extension.