Three connected blocks labeled Observe, Decide, and Act beside a two-line heading.

Content-Type and Vary work together

One URL can return JSON to an API client and plain text to another reader. Content-Type identifies the selected representation; Vary identifies request fields relevant to selecting it. A correct body label cannot prevent a cache from choosing the wrong stored response when the request-matching information is missing. ...

October 12, 2026 · 5 min · XB Field Notes
One intent needs one scoped record title card beside Observe, Decide, and Act panels.

Idempotency keys scope one logical action

An idempotency key identifies one logical action only within a service’s defined scope and retention window. Reusing the same text is not a universal exactly-once guarantee. The service must associate that identity with the right principal and operation, coordinate competing attempts, and retain enough authoritative information to recognize the action later. ...

October 12, 2026 · 7 min · XB Field Notes
Three connected blocks labeled Observe, Decide, and Act beside a two-line heading.

Content-Type tells the reader what it is

Content-Type describes the representation a sender intends to provide. It does not inspect the body, convert its bytes, or guarantee that every recipient will process it identically. A reliable endpoint keeps its serializer, declared media type, and consumer expectations in agreement, including when an error takes a different path through the server. ...

October 10, 2026 · 4 min · XB Field Notes
Observe, decide, and act panels for comparing HTTP method effects.

HTTP methods express a contract you must implement

An HTTP method describes the action requested on a target resource. Clients and intermediaries use those semantics when deciding whether to fetch, cache, or retry. Choosing a familiar verb is only the beginning: the application must implement the behavior that the verb promises. Calling a destructive operation GET does not make it safe. A useful API documents its resource model, representation, authorization, and error conditions alongside the method. ...

October 8, 2026 · 5 min · XB Field Notes
Observe, decide and act panels beside the caption Redirect chains add requests.

Redirect chains add requests

A followed redirect makes the client resolve a Location value and issue another request before it reaches the desired representation. Several individually reasonable rules can form a chain: normalize a hostname, add HTTPS, fix a trailing slash, and move an old article. Review the complete path seen by a visitor, because each intermediary becomes another dependency. ...

October 4, 2026 · 5 min · XB Field Notes
Three connected blocks labeled Observe, Decide, and Act.

Security headers need observable browser behavior

Security response headers ask a supporting browser to enforce specific rules. Their value comes from the behavior those rules change, not from the length of a header checklist. A static site still has document loading, scripts or styles, embedding, navigation, and transport boundaries to consider. Select policies that match the actual page and delivery path, then verify both intended restrictions and legitimate functionality. ...

September 30, 2026 · 5 min · XB Field Notes
Title card for ETags and conditional requests avoid work, above Observe, Decide, and Act panels.

ETags and conditional requests avoid work

A 304 is useful only when the old representation really remains an acceptable substitute. ETag supplies the origin’s version claim; it does not independently verify that claim. An incorrect tag can make conditional requests efficiently preserve wrong content. Test both unchanged data and meaningful changes before counting reduced transfers as a performance improvement. ...

September 26, 2026 · 5 min · XB Field Notes
Observe-decide-act boxes beside the message: Multiplex streams, TCP still orders.

HTTP/2 removes HTTP response-order blocking

Here, removing head-of-line blocking means removing HTTP response-order constraints on a shared connection. HTTP/2 does not remove TCP head-of-line blocking. A later response can finish while an earlier handler waits, but shared transport capacity, connection-level flow control, and application bottlenecks can still couple the streams. ...

September 15, 2026 · 6 min · XB Field Notes