HTTP Status Codes

300 Multiple Choices

The requested resource has several representations and the client should choose one — the basis of agent-driven content negotiation.

What it means

300 Multiple Choices says the target has multiple representations (formats, languages, etc.) and the client or user should select one, often from a list in the body or a Link header. In practice it is rare; servers usually resolve negotiation themselves and return 200.

Why it matters

  • It formalises agent-driven negotiation where the client, not the server, picks the representation.

Common mistakes

  • Using 300 where server-driven negotiation (Accept headers + Vary) would be simpler and better supported.

How WebInspect checks this

  • WebInspect reports the status, any Link header alternatives and the Vary header used for negotiation.