HTTP 302 Found vs 406 Not Acceptable
HTTP 302 (Found) is a 3xx Redirection response, while 406 (Not Acceptable) is a 4xx Client Error response. 302 indicates that the resource temporarily resides at a different URL. The client should continue using the original URL for future requests. In contrast, 406 means that the server cannot produce a response matching the Accept headers sent by the client.
Description
The resource temporarily resides at a different URL. The client should continue using the original URL for future requests.
When You See It
During A/B testing, temporary maintenance pages, or geo-based redirects.
How to Fix
Follow the Location header. Note: browsers may change POST to GET on redirect.
Description
The server cannot produce a response matching the Accept headers sent by the client.
When You See It
When requesting a content type the server doesn't support (e.g., Accept: application/xml when only JSON is available).
How to Fix
Adjust the Accept header to a format the server supports.
Key Differences
302 is a 3xx Redirection response, while 406 is a 4xx Client Error response.
HTTP 302: The resource temporarily resides at a different URL. The client should continue using the original URL for future requests.
HTTP 406: The server cannot produce a response matching the Accept headers sent by the client.
You encounter 302 when during A/B testing, temporary maintenance pages, or geo-based redirects.
You encounter 406 when when requesting a content type the server doesn't support (e.g., Accept: application/xml when only JSON is available).
When to Use Which
For 302 (Found): Follow the Location header. Note: browsers may change POST to GET on redirect. For 406 (Not Acceptable): Adjust the Accept header to a format the server supports.