HTTP Conditional Request Tester: ETag, 304 & 412
Explain ETag and HTTP date preconditions locally. Compare strong and weak validators, follow header precedence and inspect why a request proceeds, returns 304 or fails with 412.
Enabling local controls…
Results
Review the settings and run. Editing inputs clears old results.
Processing model and limits
Origin-server precondition model after normal request checks succeed; not a remote endpoint or authorization test. If-Match uses strong comparison; If-None-Match uses weak comparison. Tag conditions override corresponding date conditions. Proceed is not a promised 200 response. Missing resources are modeled only for PUT creation. Dates: IMF-fixdate only; obsolete HTTP dates and leap seconds stop as unsupported. Invalid date conditions are ignored with a reason. No already-succeeded operation exception, Range, cache age or CDN simulation. Each field 4 KiB, total 16 KiB, at most 20 tags per list. Input and reports can contain secrets: review before sharing; nothing is sent or saved.
Data and model checked: RFC 9110: precondition precedence ↗RFC 9110: entity tags ↗
How to use this tool
Load the example, confirm field units and processing rules, then run locally. Editing any input clears the old result. Copy or download the complete output explicitly.
When not to use it
Origin-server precondition model after normal request checks succeed; not a remote endpoint or authorization test. If-Match uses strong comparison; If-None-Match uses weak comparison. Tag conditions override corresponding date conditions. Proceed is not a promised 200 response. Missing resources are modeled only for PUT creation. Dates: IMF-fixdate only; obsolete HTTP dates and leap seconds stop as unsupported. Invalid date conditions are ignored with a reason. No already-succeeded operation exception, Range, cache age or CDN simulation. Each field 4 KiB, total 16 KiB, at most 20 tags per list. Input and reports can contain secrets: review before sharing; nothing is sent or saved.
Read the guide →