Description
Audit explicit Vary field-name set duplicates and mixed wildcard use under HTTP case-insensitive names; no header-line parser or policy repair.
HTTP caches distinguish storage policy, freshness and validation. Age and freshness lifetime are durations in seconds; an entity tag is an opaque validator that can be marked weak. Vary identifies request fields relevant to representation selection. A focused arithmetic or token check alone does not decide whether a stored response may be reused.
Audit explicit Vary field-name set duplicates and mixed wildcard use under HTTP case-insensitive names; no header-line parser or policy repair.
When to use this tool
Use this tool to audit explicit Vary field-name set duplicates and mixed wildcard use under HTTP case-insensitive names; no header-line parser or policy repair.
How to use the tool and how it works
- Enter names using the input definitions below.
- Run the operation. Resolve malformed-input errors before interpreting the result.
- Read result.duplicates, result.wildcard, result.wildcardMixed. Interpret signs, units, ordering and null values using the rules below.
Validate each name as an HTTP token or star. Group case-insensitive duplicates, report wildcard presence, and flag wildcardMixed when star occurs with another distinct normalized name.1, 2
| Input field | Meaning and units | Accepted input |
|---|---|---|
| names | Explicit Vary field-name strings or star; casing is preserved as occurrence evidence. | Dense list of at most 128 strings, each at most 8,192 UTF-16 code units. |
| Output field | Interpretation |
|---|---|
| result | Object containing the fields below. |
| result.duplicates | Case-insensitive repeated field-name groups with original indexes. |
| result.wildcard | Whether any exact star name occurs. |
| result.wildcardMixed | Whether star occurs with another distinct normalized name. |
{
"input": {
"names": [
"X",
"x",
"*"
]
},
"output": {
"result": {
"duplicates": [
{
"key": "x",
"indexes": [
0,
1
]
}
],
"wildcard": true,
"wildcardMixed": true
}
}
} Limitations and assumptions
- The input is an explicit name list, not a parsed Vary header or an automatically repaired policy.
- No HTTP exchange, cache store, clock or server is accessed. Header/directive occurrences and timestamps are supplied explicitly. Durations use seconds for HTTP semantics; timestamps must share an origin and unit.
- Every declared top-level input is required and unknown fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and within the absolute safe-integer magnitude; exact larger integers use decimal text. Source positions are zero-based UTF-16 offsets and span ends are exclusive unless a different convention is explicitly stated.
Alternative or Complementary methods
Combine these focused results with the request/response caching rules applicable to the actual exchange. Preserve field occurrences and distinguish freshness calculations, validator comparison and complete cache-reuse authorization.
References
-
RFC 9111: HTTP Caching — RFC Editor
Similar or alternative tools
- Vary Request Value Fingerprint
Fingerprint explicit Vary request field occurrence arrays, distinguishing absent from empty fields and returning null for Vary star; reusable means no star only, not full cache reuse authorization.
- Cache Corrected Initial Age
Compute RFC 9111 corrected initial cache age from explicit same-unit timestamps and Age value; no actual network observation or clock synchronization assumed.