Status codes are the fastest signal in the protocol, because the difference between what a code is defined to mean in §15 and what an implementation does with it is visible from outside with a single request. Two of them, 403 and 404, are where the document explicitly hands the server a choice about how much existence to disclose.
100 Continue
§15.2.1FieldAn interim response before a large body. Divergent handling of 100-continue between hops is a documented desync amplifier, so test it alongside Expect.
101 Switching Protocols
§15.2.2FieldUsed for the Upgrade handshake. Confirm the upgrade target is authorized; protocol-switch endpoints sometimes bypass the middleware that wraps ordinary routes.
200 OK
§15.3.1FieldBaseline. Diff bodies and timings across privilege levels to find authorization leaks: fields present but unrendered, verbose errors for one role and terse ones for another.
201 Created
§15.3.2FieldThe Location value on a 201 exposes the identifier scheme for new resources. Sequential identifiers here are a map for the IDOR sweep.
204 No Content
§15.3.5FieldCommon on a successful DELETE or PUT. A 204 for a resource you do not own, rather than a 403 or 404, confirms an IDOR without needing to see a body.
206 Partial Content
§15.3.7DefinedConfirms range requests are honoured, which is the prerequisite check before measuring the §17.15 surface.
300 Multiple Choices
§15.4.1FieldRarely implemented. Where it appears, check whether the choice list exposes representation URIs that are not linked anywhere else.
301 Moved Permanently
§15.4.2FieldCached by clients and intermediaries, so a poisoned 301 has a long blast radius. Also the usual building block for redirect chains feeding SSRF.
302 Found
§15.4.3DefinedHistorically ambiguous about method preservation. §15.4.3 acknowledges that user agents rewrite POST to GET here, contrary to the original intent, which is why clients within one stack can disagree about what a 302 means.
303 See Other
§15.4.4DefinedMeans retrieve the new URI with GET regardless of the original method. Behaviour that deviates from that is a logic-bug signal.
304 Not Modified
§15.4.5FieldThe response that turns conditional requests into an existence signal, as described throughout the conditional-request fields.
307 Temporary Redirect
§15.4.8MUST§15.4.8 says the user agent MUST NOT change the request method if it performs an automatic redirection, which is exactly what distinguishes it from 302 in practice. Whether credentials survive the hop is a separate question 9110 does not answer.
308 Permanent Redirect
§15.4.9MUSTThe same method preservation as 307, but cacheable long term, so the same credential test carries more persistence if the value is ever poisoned into a shared cache.
400 Bad Request
§15.5.1FieldBaseline malformed-request response. Verbose 400 bodies are a frequent stack-trace and framework leak, which §17.12 treats as a disclosure risk.
401 Unauthorized
§15.5.2DefinedAuthentication is missing or invalid. Inconsistent 401-versus-403 use across one logical boundary is itself a map of the access-control model.
403 Forbidden
§15.5.4SHOULD / MAYThe server understood the request and refuses it. §15.5.4 is where the hide-behind-404 permission actually lives: an origin server that wishes to hide the current existence of a forbidden target resource MAY instead respond with a 404. It also says the client SHOULD NOT automatically repeat the request with the same credentials.
404 Not Found
§15.5.5Defined§15.5.5 defines 404 as the origin server having found no current representation or being unwilling to disclose that one exists, which is what makes the substitution permitted by §15.5.4 legitimate. An application that returns 403 where it could have returned 404 is disclosing existence by choice.
405 Method Not Allowed
§15.5.6MUSTDelivers Allow for free, and §10.2.1 makes that mandatory. Trigger one deliberately when OPTIONS is filtered.
406 Not Acceptable
§15.5.7FieldThe server cannot satisfy the negotiation constraints, which tells you which formats the parser will actually attempt.
409 Conflict
§15.5.10FieldSignals a state conflict, which is useful for confirming that a race window exists at all rather than the application silently taking the last write.
411 Length Required
§15.5.12FieldThe server refuses a request without Content-Length, which matters when probing how chunked and length-delimited framing are handled.
413 Content Too Large
§15.5.14DefinedThe size-limit enforcement point. Read it with §17.5 on protocol element length: HTTP sets no predefined limits, so implementations must defend themselves, and they do so inconsistently.
414 URI Too Long
§15.5.15DefinedConfirms a request-target ceiling. §15.5.15 itself notes that the condition sometimes results from a client improperly converting a POST to a GET with long query information, and sometimes from an attack.
415 Unsupported Media Type
§15.5.16FieldMaps the declared boundaries of the parser, which narrows the Content-Type values worth fuzzing further.
416 Range Not Satisfiable
§15.5.17DefinedBoundary-testing this reveals the true representation length even where the content is withheld, the same intelligence Content-Range gives.
421 Misdirected Request
§15.5.20DefinedExists precisely for the connection-reuse confusion described in §4.3.3. An origin sends 421 to reject a target URI that does not match an origin it has been configured for, or does not match the connection context the request arrived on. A server that answers instead of rejecting is the connection-confusion bug class.
429 Too Many Requests
RFC 6585FieldNot defined in 9110. Universally deployed anyway, and its threshold behaviour shapes any rate-limit strategy.
500 Internal Server Error
§15.6.1FieldGeneric catch-all. Verbose 500 bodies carrying stack traces, query fragments, or file paths remain one of the highest-signal free intelligence sources in an assessment.
502 Bad Gateway
§15.6.3DefinedConfirms a gateway sits in front of an unreachable origin, which helps map the intermediary chain before choosing a technique.
503 Service Unavailable
§15.6.4FieldDistinguish genuine overload from a deliberate soft block by diffing Retry-After presence and response timing.
504 Gateway Timeout
§15.6.5FieldA slow-path timing signal. Differential timeouts across parameters can reveal blind injection or SSRF with no reflected output.