Permanent Redirect

状態符号 308 (HTTP)

[14] 308 (Permanent Redirect) は、永続的なリダイレクトを表す状態符号です。 リダイレクトの前後で同じ要求メソッドを使わなければならないことも表しています。

[15] POST をリダイレクトされた時 GET にしても良い 301 とは異なります。

仕様書

意味

[7] 308 は、対象資源に新しい永続的 URL が割り当てられ、以後この資源を参照する時に指定された URL のいずれかを使うべき (ought to) であることを示します >>5。

[28] 308 は、リダイレクト状態の1つです。

従って Webブラウザーは 308 応答をリダイレクトとして扱います。

構文

[9] サーバーは、新しい永続的 URL を含んだ Location: ヘッダーを生成するべきです >>5。

[16] なぜか必須にはなっていません。

[11] 応答の payload は普通新しい URL (群) へのハイパーリンクつきの短いハイパーテキストのメモを含みます >>5。

処理

[10] 利用者エージェントは Location: ヘッダーの値を自動的にリダイレクトに使って構いません >>5。

[13] 301 応答とは違って、要求メソッドはリダイレクト前後で同じでなければいけません。

[8] リンクを編集する能力のあるクライアントは、 できるだけ実効要求URLへのリンクを指定された新しい参照のうちの1つ以上に自動的に修正するべきです >>5。

[12] 308 応答は、キャッシュ可能です >>5。

歴史

308 Resume Incomplete

[22] 308 (Resume Incomplete) は Google Gears 他 Google を中心にいくつかの実装が存在していました。

[24] Google BigQuery での例 >>23
HTTP/1.1 308 Resume Incomplete
Content-Length: 0
Range: 0-42

308 Permanent Redirect

[6] 308 は RFC 7238 で定義されました。 Google の 308 とは無関係で、互換性はありません。

[27] RFC 7238 の出版から1年も待たずに RFC 7538 >>25 が新たに出版されました。しかし実質的に変更はなく >>26、 深刻な問題があっても滅多に改訂版を出さない IETF にしては珍しいことです。

[29] Avoid using the CORS flag to reset request's origin in redirects by annevk · Pull Request #594 · whatwg/fetch () <https://github.com/whatwg/fetch/pull/594>