HTTPQUERY
日本語

201 Created

使い方

201 Created ステータスコードは、リクエストによって1つ以上の新しいリソースが作成されたときに返されます。これは一般に POST または PUT リクエストに続いて発生します。サーバーは、新しく作成されたリソースを指す Location ヘッダーを含めます。Location ヘッダーがない場合、作成されたリソースは元のリクエストで指定されたパスに存在します。

注意

特定の URI にリソースを作成する PUT リクエストも 201 Created を返します。違いは、PUT ではクライアントがターゲット URI を直接指定するのに対し、POST ではサーバーが URI を決定する点です。

仕様は 201 レスポンスでのボディを認めています。REST の慣例は、id、タイムスタンプ、URI などサーバーが割り当てたフィールドを含む、作成されたリソースの表現を返すことです。これにより、新しいリソースを取得するための追加の GET リクエストが不要になります。Location ヘッダーは新しいリソースの URI を指します。

注意

201 は、リソースが直ちに作成され Location の URI で利用可能であることを意味します。202 はリクエストが受理されたものの処理がまだ完了していないことを意味し、非同期のワークフローやキュー化されたジョブでよく使われます。

SEO への影響

Google は 201 レスポンスからのコンテンツを短時間待ち、その後受け取ったコンテンツをインデックス登録パイプラインへ渡します。インデックス登録は保証されません。

例

クライアントが /incoming/xml を宛先パスとして指定し、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