Skip to content

Coverage gap: combining repeated response header fields on store #187

@mnot

Description

@mnot

Coverage gap

When a response carries the same header field name on multiple lines, a cache storing/forwarding it must combine the values into one comma-separated field, preserving order (RFC 9110 §5.3 / RFC 9111 §3.2). Only the request-side combining (of a Vary-selecting header) is tested; the response-side store-and-combine is not.

Currently tested

vary-normalise-combine (tests/vary.mjs) tests combining on the request (selecting-header) side. The server can emit duplicate response headers (test-engine/server/handle-test.mjs array-joins them) but no test asserts on the combined stored/served output.

Suggested test

Origin returns a response with two lines of the same field (e.g. X-Test-Header: a then X-Test-Header: b). Assert the cache stores/serves the combined value a, b (in order).

Tag

[MUST] — RFC 9110 §5.3


Filed from an AI-assisted (Claude Code) coverage audit against RFC 9111/9110, under maintainer direction. Absence was grep-verified; the spec section number and MUST/SHOULD/optimal strength are from model knowledge, not re-read from the RFC text — worth confirming before writing the test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions