Direct answer
What does HTTP response comparison include?
Diff Anything separates an HTTP response into its status line (HTTP version, status code, and reason phrase, each compared on its own), case-insensitive headers, and body. Selected headers can be ignored. A valid JSON body receives semantic comparison; other bodies remain strings. It accepts raw HTTP responses, JSON-shaped responses, or plain JSON bodies and reports invalid raw header lines instead of silently accepting them.

Input formats
Paste a raw response, a saved JSON response, or just the body.
Comparing two API responses as text mixes real changes with new dates, request ids, and reordered JSON keys. HTTP Response mode splits each response into its status line, headers, and body, and compares each part in its own way.
It reads three shapes. A raw response starts with a status line such as HTTP/1.1 200 OK, followed by headers, a blank line and the body. A saved JSON response is an object with a status or statusCode field, plus headers and body, and optionally httpVersion and statusText. Any other content is treated as a body on its own.
Diff Anything compares responses you open from files or paste. It does not send requests to a URL.
Headers
Headers are matched without regard to letter case.
Content-Type and content-type are the same header. Repeated headers, such as several Link lines, are kept as a list of values. A raw header line without a colon stops the comparison with an error that names the side, so a truncated capture is not treated as valid.
Some headers change on every request. Under Ignored headers, enter one header name per line. By default the list contains date, server, set-cookie, x-request-id, and traceparent. Ignored headers stop counting as differences; the files you opened are not changed.
Body
JSON bodies are compared by value.
A valid JSON body is compared as parsed data, so key order does not matter and numbers compare by value. Arrays of records with a unique id, _id, uuid or key field are paired by it; other arrays are compared by position. Any other body is compared as a single string.
The HTTP version, status code, and reason phrase are compared separately, so the result says, for example, "Status code changed from 200 to 404" or "Reason phrase changed from "OK" to "Not Found"". A part that only one response records is not compared. The JSON Semantic rules, such as ignore paths and numeric tolerance, are not available for response bodies; save the two bodies as .json files and compare them in JSON mode when you need those rules.
Copy changes
Copy a header or value into the other response.
Right → left and Left → right copy a single difference across, and the target keeps its own format. A raw response keeps its status text, header lines and line endings; a saved JSON response keeps its layout; a body-only file stays a body, and a status or header cannot be written into it.
With Pro, --mode http compares responses from the command line. It uses no ignored headers, so a changing Date header counts as a difference there.
Best for
Where this workflow fits.
- Checking API responses across environments
- Ignoring volatile headers while retaining meaningful changes
- Comparing private response captures without an upload
No accounts, cloud comparison service, analytics, or telemetry.
Relevant capabilities
What Diff Anything brings to the job.
Practical workflow
From setup to a reviewed result.
Capture both responses
Save each response with its status line and headers, or as a JSON object with status, headers and body.
Open or paste them
Add them to the left and right panels. Auto opens pasted captures, .http files, and saved JSON responses with a status and headers in HTTP Response mode; for other files, choose HTTP Response in the toolbar.
Adjust ignored headers
Add any header that changes on every request, such as a custom trace or cache id.
Review status, headers, and body
Go through what is left: status line changes, header values, and changed paths in the body.
Useful in practice
Direct answers
Questions about HTTP response diff tool.
What does HTTP response comparison include?
Diff Anything separates an HTTP response into its status line (HTTP version, status code, and reason phrase, each compared on its own), case-insensitive headers, and body. Selected headers can be ignored. A valid JSON body receives semantic comparison; other bodies remain strings. It accepts raw HTTP responses, JSON-shaped responses, or plain JSON bodies and reports invalid raw header lines instead of silently accepting them.
Which headers are ignored by default?
date, server, set-cookie, x-request-id, and traceparent. You can edit the list under Ignored headers, one name per line.
Is the status text compared?
Yes. The HTTP version, the status code, and the reason phrase after it are each compared and reported separately.
Can Diff Anything call my API and fetch the responses?
No. It compares responses you have saved or pasted. Capture them with your usual HTTP client first.
Can I ignore a field inside a JSON response body?
Not in HTTP Response mode. Compare the two bodies as JSON files to use Ignore paths and the other semantic rules.
Go deeper
Choose sources, understand automatic detection, and select the engine that answers the question you are actually asking.
Read Choose the right comparison modeFree & Pro: what’s included
Available on the Mac App Store and Microsoft Store. Free desktop use lets you try every comparison engine for files up to 5 MiB per side and 10 new comparison sessions per local day; collection previews show the first 100 items and PDF previews show the first 3 pages. The free CLI supports text and JSON. A one-time Pro purchase removes the preview and session limits and unlocks larger sources within technical limits, saved profiles and history, report export, three-way merge, folder synchronization, batch manifests, trusted preprocessors, and every CLI mode.