HTTPQUERY
Русский

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