* 状態符号 201 Created (HTTP) [1] [[HTTP]] の[[状態符号]] [DFN[[CODE(HTTP)[201]] (作成済み)]] は、[[資源]]の作成を求める[[要求]]が成功したことを表します。 例えば [CODE(HTTP)[[[PUT]]]] method を使って資源を送り込んで、 それが鯖に配置された場合に [CODE(HTTP)[201]] で応答があるはずです。 [CODE(HTTP)[201]] 応答には、普通[[実体]]を含めます。 その実体では、作成した資源に関する情報 ([[URI]] など) を含めます。 また、 [CODE(HTTP)[[[Location]]:]] 頭欄には作成した資源の URI (のうちの1つ) を示します。 ([CODE(HTTP)[[[3[VAR[xx]]]]]] とは違って redirect ではないので、 [[UA]] は [CODE(HTTP)[Location:]] を受取っても[[利用者]]の操作を待たずに勝手に [CODE(HTTP)[Location:]] URI に飛ぶことはしないのが普通です。) * 仕様書から *** RFC 1945 (HTTP/1.0); RFC 2068・2616 (HTTP/1.1) 10.2.2 201 Created > The request has been fulfilled and resulted in a new resource being created. The newly created resource can be referenced by the URI(s) returned in the entity of the response[INS[, [INS[{2068,2616}]] with the most specific [DEL[URL]] [INS[URI]] for the resource given by a Location header field]]. [INS[[INS[{2616}]] The response SHOULD include an entity containing a list of resource characteristics and location(s) from which the user or user agent can choose the one most appropriate. The entity format is specified by the media type given in the Content-Type header field.]] The origin server [DEL[[INS[{1945}]] should]] [INS[[INS[{2068}]] MUST]] create the resource before [DEL[[INS[{1945}]] using this Status-Code]] [INS[[INS[{2068}]] returning the 201 status code]]. If the action cannot be carried out immediately, [DEL[[INS[{1945}]] the server must include in the response body a description of when the resource will be available; otherwise,]] the server [DEL[[INS[{1945, 2068}]] should]] [INS[[INS[{2616}]] SHOULD]] respond with 202 [DEL[[INS[{1945}]] (accepted)]] [INS[[INS[{2068}]] (Accepted) response instead]]. [[要求]]は満たされまして、新しい[[資源]]が作られました。 新しく作られた資源は、[[応答]]の[[実体]]の中にある URI (群) によって参照することができます。 [INS[その資源を識別する一番の URI は [CODE(HTTP)[[[Location]]]] 頭欄で指定します。]] [INS[応答は、[[利用者]]や[[利用者エージェント]]が最適なものを選ぶことができるような、その資源の特徴と位置 (群) の一覧が含まれている実体を含む'''べきです'''。実体の書式は、 [CODE(HTTP)[[[Content-Type]]]] 頭欄に指定した媒体型により規定されます。]] 起点鯖は、その資源を、 [CODE(HTTP)[201]] 状態符号を返すよりも前に作成[DEL[するべきです]] [INS[し'''なければなりません''']]。 起点鯖がすぐに資源を作成できない場合には、[DEL[その資源がいつ利用可能になるのかの説明を[[応答本体]]に含めなければなりません。そうしない場合には、]] [CODE(HTTP)[201]] ではなしに [CODE(HTTP)[[[202]]]] (受入れ) 応答を使って応答する'''べきです'''。 [DEL[ > [INS[{1945}]] Of the methods defined by this specification, only POST can create a resource. この仕様書で定義しました method の内では、 [CODE(HTTP)[[[POST]]]] だけが資源を作成できます。 ]DEL] [INS[ > [INS[{2616}]] A 201 response MAY contain an ETag response header field indicating the current value of the entity tag for the requested variant just created, see section 14.19. [CODE(HTTP)[201]] 応答は、 ちょうど今作成するように要求された[[異体]]の[[実体札]]の現在値を示した [CODE(HTTP)[[[ETag]]]] 応答頭欄を含めても'''構いません'''。 ]INS] ** 他との関係 [2] [CODE(HTTP)[201]] 応答は [CODE(HTTP)[[[Location]]:]] 頭欄を使用できます。 [CODE(HTTP)[Location:]] 欄本体には作成された資源を識別する URI を指定します。 [3] [CODE(HTTP)[201]] 応答は [CODE(HTTP)[[[ETag]]:]] 頭欄を使用できます。 [CODE(HTTP)[ETag:]] 欄本体には作成された資源異体の[[実体札]]を指定します。 [4] [CODE(HTTP)[201]] 応答には[[実体本体]]を指定できます。 [CODE(HTTP)[201]] 応答実体は、作成された資源についての情報を記述します。 具体的な書式は特に規定されていません。 [5] [CODE(HTTP)[201]] 応答を返し得る method には、 [CODE(HTTP)[[[POST]]]], [CODE(HTTP)[[[PUT]]]] などがあります。 [[#comment]] ** メモ [6] [[RFC 2068]] 以前からある部分は[Q[資源を作成]]すると書いていますが、 [[RFC 2616]] で追加された [CODE(HTTP)[ETag:]] 欄の説明の部分では[Q[異体を作成]]と言っています。 [CODE(HTTP)[201]] はまったく新しい資源を作成した時に限らず、 既存の資源の新しい異体を作成した場合 (例えば HTML 版に加えて XHTML 版を作成した場合) にも使って良いのかもしれません。 [[#comment]] * メモ