HTTP headers that tell caches when a stored answer is still fresh.

Cache freshness is judged against a clock

A cache does not receive a new freshness allowance every time another cache forwards a response. It must account for age already accumulated along the delivery path, then add its own residence time. Otherwise a chain of individually plausible sixty-second caches can keep old content reusable much longer than the origin intended. ...

December 3, 2027 · 5 min · XB Field Notes
A response attaching named relationships to other resources.

The Link header relates adjacent resources

The Link response field describes relationships between the current resource and other resources. An API returning JSON can advertise its next page without making clients scrape HTML or invent a query parameter. The field supplies a target and a relation; whether to follow it remains a client decision. It is useful metadata, not a command that every browser or crawler must execute. ...

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

Server-Timing exposes named measurements to the browser

The Server-Timing response header lets a server attach named measurements to a response. Browser developer tools and performance APIs can then associate those measurements with the resource request. It is useful when the network waterfall shows a long wait but cannot explain whether backend work involved a database call, rendering, or another measured operation. The header supplies server-selected observations, not an independent browser measurement of those operations. ...

November 7, 2026 · 5 min · XB Field Notes
A response declaring its media type so the browser parses it correctly.

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-act boxes beside the message: Remember HTTPS, scope the policy.

HSTS makes the browser remember HTTPS

HTTP Strict Transport Security tells a supporting client to use HTTPS for a remembered hostname. It can eliminate the insecure HTTP request before a redirect, but only when the client already knows the policy, through an earlier authenticated response or a supported preload mechanism. Merely adding a header cannot retroactively protect an unknown client’s first HTTP visit. ...

October 8, 2026 · 7 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
Three connected blocks labeled Observe, Decide, and Act.

CSP makes browser execution rules explicit

Content Security Policy tells a supporting browser which actions a document permits. Fetch directives govern categories such as scripts, styles, and images; other directives cover different boundaries. The policy is supplied with the document, commonly through a response header. It adds constraints to browser behavior, but does not repair an injection bug, authenticate application users, or promise that every possible form of script execution has been eliminated. ...

September 10, 2026 · 5 min · XB Field Notes