201 Created
Применение
Код состояния 201 Created возвращается, когда запрос создаёт один или несколько новых ресурсов. Обычно это происходит после запроса POST или PUT. Сервер включает заголовок Location, указывающий на вновь созданный ресурс. Когда заголовок Location отсутствует, созданный ресурс располагается по пути, указанному в исходном запросе.
Примечание
Запрос PUT, создающий ресурс по конкретному URI, также возвращает 201 Created. Отличие в том, что при PUT целевой URI напрямую задаёт клиент, тогда как при POST URI определяет сервер.
Спецификация допускает наличие тела в ответе 201. По соглашениям REST принято возвращать представление созданного ресурса, включая поля, назначенные сервером: id, временные метки и URI. Это избавляет от последующего GET-запроса для получения нового ресурса. Заголовок Location указывает на URI нового ресурса.
Примечание
201 означает, что ресурс создан немедленно и доступен по URI из Location. 202 означает, что запрос принят, но обработка ещё не завершена, что типично для асинхронных процессов и задач в очереди.
Влияние на SEO
Google недолго ждёт содержимое из ответов 201, затем передаёт полученное содержимое в конвейер индексации. Индексация не гарантируется.
Пример
Клиент загружает XML-данные на сервер, указывая /incoming/xml в качестве пути назначения. Сервер отвечает подтверждением, что данные приняты и создан файл с именем article_1.xml.
Запрос
POST /incoming/xml HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 105
<?xml version="1.0"?>
<article>
<title>Test XML article</title>
<author>Anonymous</author>
</article>
Ответ
HTTP/1.1 201 Created
Location: /incoming/xml/article_1.xml
Content-Type: application/json
Content-Length: 18
{"success":"true"}
Примеры кода
.NET
HttpStatusCode.Created
Rust
http::StatusCode::CREATED
Rails
:created
Go
http.StatusCreated
Symfony
Response::HTTP_CREATED
Python3.5+
http.HTTPStatus.CREATED
Java
java.net.HttpURLConnection.HTTP_CREATED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_CREATED
Angular
@angular/common/http/HttpStatusCode.Created