ちょっと 3xx レスポンスを無視して、なぜ HTTP ロケーション ヘッダーが POST リクエスト/201 (Created) レスポンスと組み合わせてのみ使用されるのか疑問に思います。
RFC 2616 仕様から:
201 (Created) 応答の場合、Location はリクエストによって作成された新しいリソースの場所です。
これは広くサポートされている動作ですが、他の HTTP メソッドで使用しないのはなぜでしょうか? 例として、 JSON API 仕様を取り上げます。
JSON ペイロード内の現在のリソースの自己参照リンクを定義します ( RESTful API では珍しくありません)。このリンクはすべてのペイロードに含まれています。仕様では、 POST を介して新しいドキュメントを作成する場合は HTTP ロケーションヘッダーを含める必要があり、その値はペイロード内の自己参照リンクと同じであると記載されていますが、これはPOST にのみ必要です。HTTP ロケーション ヘッダーだけを使用できるのに、自己参照リンクのカスタムフォーマットにわざわざこだわる必要はありません。
注: これは JSON API に固有のものではありません。HAL、JSON ハイパースキーマ、またはその他の標準でも同じです。
注 2: HTTP リンク ヘッダーと同じであるため、HTTP ロケーション ヘッダーに固有のものではありません。JSON API を見るとわかるように、HAL と JSON ハイパースキーマは、自己参照リンクの規則を定義するだけでなく、関連するリソースやリソースの可能なアクションに関する情報を表現します。しかし、それらはすべて HTTP リンク ヘッダーを使用できたようです。(HTTP ロケーション ヘッダーを使用したくない場合は、自己参照リンクを HTTP リンク ヘッダーに入れることもできます。)
怒鳴りたくはありませんが、ある種の「車輪の再発明」のようです。また、非常に制限されているようです: HTTP ロケーション/リンク ヘッダーのみを使用する場合、HTTP 受け入れヘッダーで JSON、XML、またはその他を要求しても問題はなく、リソースに関する有用なメタ情報を取得できます。 JSON API、HAL、または JSON ハイパースキーマを使用する場合、HEAD リクエストにはリンクが含まれません。