URL query / fragment / refresh state
Separate query, fragment and reload boundaries
Use fixed examples to distinguish values sent to a server from values kept in the browser. No user URL is accepted, and this page does not navigate, fetch, store or send.
Five URL state boundaries
A query travels with an HTTP request; a fragment is not included in the initial request. Record reload and sharing behavior separately.
query → server-visible / fragment → browser-only
| Axis | Review |
|---|
| query | Separate request-visible values from server ownership. |
| fragment | Browser-side state excluded from the initial HTTP request. |
| encoded | Keep the displayed string separate from decoding responsibility. |
| reload/share | Check what stays in the address bar and what reload restores. |
| secret-like | Do not put secrets in shared URLs; stop on the risky case. |
Safe review order
- Record query and fragment separately with fixed examples.
- Keep encoded text separate from the receiver's decoding responsibility.
- Specify what reload and sharing preserve.
- Hold secret-like values locally instead of putting them in a URL.
This page uses synthetic cases only. It does not parse a user URL, send data, store data or rewrite the URL.
Five fixed cases
| case | fixed example | decision |
|---|
query-server-visible | /search?q=alpha | query is server-visible |
fragment-browser-only | /app#tab=details | fragment is browser-only |
encoded-query-boundary | /search?q=a%2Bb%20c | review encoded value ownership |
reload-share-boundary | /app?tab=results#focus=price | separate query and fragment on reload/share |
fragment-secret-risk | /app#token=<redacted> | hold secret-like values |