parlov docs

Negotiation Elicitation

Negotiation elicitation techniques use proactive negotiation request headers to force the server into representation-selection paths that diverge based on target existence.

Implemented

Negotiation elicitation techniques use proactive negotiation request headers to force the server into representation-selection paths that diverge based on target existence. The server must resolve the target resource and evaluate its candidate representations against the client's stated preferences before generating a negotiation-failure response.

This family covers four techniques, ordered by canonical strength:

  1. Accept (canonical) — media-type negotiation. Cleanest path to 406 vs 404. Strongest proactive-negotiation trigger.
  2. Accept-Language (secondary) — language negotiation. Valid path to 406, but the RFC leans toward fallback over refusal.
  3. Accept-Encoding (tertiary) — content-coding negotiation. Structurally valid but often defeated by identity fallback.
  4. Accept-Charset (weak / legacy) — charset negotiation. Deprecated in RFC 9110. Included for completeness.

Risk tier: Safe — all four headers apply primarily to GET/HEAD. Reachable on other methods in principle, but the canonical use is read-only probing.

Primary differential: 406 vs 404

Secondary outcomes: 200 vs 404 (when the server disregards the negotiation header and sends a default representation)