HTTP

HTTP 201 Created vs 406 Not Acceptable

HTTP 201 (Created) is a 2xx Success response, while 406 (Not Acceptable) is a 4xx Client Error response. 201 indicates that the request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity. In contrast, 406 means that the server cannot produce a response matching the Accept headers sent by the client.

Description

The request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity.

When You See It

After successfully creating a new user, post, order, or other resource via a REST API.

How to Fix

No fix needed. Check the Location header for the URL of the new resource.

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

1.

201 is a 2xx Success response, while 406 is a 4xx Client Error response.

2.

HTTP 201: The request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity.

3.

HTTP 406: The server cannot produce a response matching the Accept headers sent by the client.

4.

You encounter 201 when after successfully creating a new user, post, order, or other resource via a REST API.

5.

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 201 (Created): No fix needed. Check the Location header for the URL of the new resource. For 406 (Not Acceptable): Adjust the Accept header to a format the server supports.

Learn More