Caching header reference
ETag and If-None-Match for API caching and safe writes
Use strong and weak ETags for conditional API reads, 304 responses, optimistic concurrency with If-Match, and lost-update prevention.
ETag is a validator, not simply a hash label. Clients can revalidate cached reads with If-None-Match and receive 304 without another payload. For writes, If-Match can protect against replacing a resource that changed since the client last read it.
Treat the complete response as an evidence record: status, headers, provider code, request identifier, method, and raw body. The sequence below separates what the response proves from the checks still needed before a safe retry or code change.
Diagnostic procedure
Work from evidence to recovery.
- 01
Choose validator strength
Use strong validators when byte-equivalence matters; weak validators can represent semantically equivalent responses.
- 02
Revalidate reads
Send If-None-Match with the stored tag and handle 304 using the cached representation.
- 03
Protect writes
Require If-Match for updates where a stale client could overwrite a newer resource version.
GET every 5 seconds → download unchanged 500 KB response
GET If-None-Match: "v42" → 304 Not Modified; reuse cached body
Evidence
HTTP 429: A rate, quota, concurrency, or resource lock limit blocked the request.
Retry-After is present; it should take precedence over a guessed delay.
The reported request window has no remaining capacity.
Next checks
01Parse Retry-After as either delta-seconds or an HTTP date before scheduling the next attempt.
No account · no upload · no endpoint calledOpen the full incident decoder and operating notes →
FAQ
Before you ship
Does APITC send this evidence to an API?
No. The matching and calculations in the linked workbench run in the active browser tab.
Should every conditional request response be retried?
No. Retry behavior depends on the method, idempotency protection, provider instructions, and whether the failure is temporary.
Protocol behavior checked against the MDN — ETag. Recheck your pinned provider/API version before production deployment.