HTTPQUERY
日本語

Allow

使い方

サーバーは、リソースがどのリクエストメソッドをサポートするかを伝えるために Allow を含めます。このヘッダーは 405 Method Not Allowed レスポンスで必須であり、要求された URI に対して有効なメソッドをサーバーがクライアントに知らせます。

このヘッダーは OPTIONS リクエストへのレスポンスにも現れます。OPTIONS リクエストはリソースに対して利用可能な通信オプションの説明をサーバーに求めるもので、Allow はそのレスポンスで許可されたメソッドの一覧を提供します。

値は標準的な HTTP メソッド名をカンマ区切りで並べたリストです。このリストはレスポンス時点でリソースが受け付けるメソッドを反映します。Allow ヘッダーが空の場合、現在受け付けているメソッドがないことを示し、サーバーがリソースへのアクセスを一時的に制限している場合に発生します。

Allow ヘッダーが記述するのは対象リソースであり、サーバー全体ではありません。同じサーバー上の異なるリソースが、それぞれ異なるメソッドの組み合わせをサポートすることはよくあります。コレクションのエンドポイントが GET と POST を受け付ける一方で、個々のリソースは GET、PUT、DELETE をサポートする、といった具合です。

method-list

HTTP メソッド名をカンマ区切りで並べたリストです。一般的な値は次のとおりです。

Allow: GET, HEAD, POST

例

クライアントが、GET と POST だけをサポートするリソースへ DELETE リクエストを送信します。サーバーは 405 で応答し、有効なメソッドを列挙した Allow ヘッダーを含めます。

HTTP/1.1 405 Method Not Allowed
Allow: GET, POST
Content-Type: application/json

OPTIONS リクエストへのレスポンスは、そのリソースが受け付けるすべてのメソッドを示します。GET がサポートされている場合、HEAD メソッドは暗黙的に利用可能です。

HTTP/1.1 200 OK
Allow: GET, HEAD, PUT, DELETE
Content-Length: 0

POST の後に返される 201 Created レスポンスに Allow を含めることで、新しく作成されたリソースで利用可能なメソッドを示します。

HTTP/1.1 201 Created
Location: /items/42
Allow: GET, PUT, DELETE