2026-09-19 · 8 min read
- http
- performance
- preload
HTTP 103 Early Hints lets an origin send selected response fields before the final response is ready. A supporting user agent can use Link metadata to establish connections or preload important resources while application work continues.
The message is informational. It is not the final status, does not make final headers known, and may be dropped by clients or intermediaries. The page must remain correct and complete when no hint is delivered or used.
Hint only stable, high-value dependencies
Choose resources that are very likely to appear in the final representation and are expensive enough to justify early discovery. Over-hinting competes for bandwidth, wastes server work, and can delay resources the browser would otherwise prioritize.
- Keep hinted URLs free of secrets and user-specific identifiers.
- Use accurate preload as-values and MIME expectations.
- Match cross-origin and credentials modes to the final fetch.
- Coordinate hints with CSP and resource-integrity policy.
Preserve reuse between hint and final page
A speculative fetch helps only when the browser can reuse it for the eventual request. URL normalization, content negotiation, crossorigin settings, integrity metadata, referrer policy, and resource type can all produce a different cache key or fetch mode.
Generate hint and final markup from shared resource metadata where possible. Do not let separate templates drift into two nearly identical requests that download the same asset twice.
Treat the final response as authoritative
After one or more informational responses, the client must continue reading for the final status and fields. A redirect, authentication challenge, or server error remains possible even after speculative work began.
- Do not set cookies or rely on final-only semantics in 103.
- Keep authorization decisions out of speculative resources.
- Ensure errors work without any hinted dependency.
- Bound and deduplicate repeated Link hints.
Measure every production hop
Verify origin emission, reverse-proxy forwarding, CDN behavior, client support, fetch start time, preload reuse, bytes transferred, and final user metrics. A laboratory response trace does not prove that the optimization survives the deployed path or improves the page.
Use Flashman's URL tool for targets, timestamp converter for event timelines, diff for interim and final fields, hash for asset fixtures, and units converter for transfer budgets. Test unsupported clients, proxies, redirects, errors, cross-origin assets, cache hits, negotiated variants, duplicate hints, and measured regressions.