セッション履歴

セッション履歴 (Web)

[3] セッション履歴 (session history) は、 ある閲覧文脈中の文書の列です >>2

仕様書

閲覧文脈とセッション履歴

[8]閲覧文脈セッション履歴を1つ持ちます >>1, >>2セッション履歴は、 その閲覧文脈で過去、現在、未来に於いて提示される (presented) Document オブジェクトリストです >>1セッション履歴は、閲覧文脈の作成と同時に作成されます。

[4] 最上位閲覧文脈入れ子閲覧文脈も、それぞれ1つずつセッション履歴を持ちます。

[5] セッション履歴は、セッション履歴エントリーの平坦なリストです >>2

[7] セッション履歴に含まれるセッション履歴エントリーのいずれか丁度1つは、 現在エントリーとなります。

[21] セッション履歴は、必ず1つ以上のセッション履歴エントリーを持ちます。 空のセッション履歴は存在しません。閲覧文脈の作成時には、 初期「about:blank」文書が自動的に作成されます。

[17] セッション履歴エントリーには文書が関連付けられています。 複数のセッション履歴エントリーが同じ文書を共有する場合があり、 そのようなエントリーセッション履歴上で連続しています。

[18] 同じ文書を共有するセッション履歴エントリーが複数ある場合、 最後のものが文書最新エントリーとなります。 同じ文書を共有するセッション履歴エントリーの個数には、 利用者エージェント依存の上限が設定されていることがあります。

pushState を参照。

[6] History オブジェクトは、セッション履歴を表しています。 History オブジェクトDocument ごとに存在しています。

History を参照。

[12] 次の場面でセッション履歴の操作が行われます。

セッション履歴エントリーの挿入

[13] セッション履歴セッション履歴エントリーを挿入する操作は、 置換有効について、 次のように行わなければなりません >>28, >>19, >>20

  1. [30] 置換有効の場合、
    1. [14] セッション履歴エントリーのうち、現在エントリーよりも後のものを (あれば) 削除します。 (現在エントリーは含みません。)
  2. [15] セッション履歴閲覧文脈最上位閲覧文脈文書族文書に関連付けられた履歴探索タスク源タスクを (あれば) タスクキューから削除します。
  3. [16] セッション履歴の最後に新しいエントリーを追加します。

[22] navigate で新しい文書に移動する場合 >>20 にはタスクキューからの削除 (>>15) は行われませんが、 直後の履歴の探索内で結局削除が行われますから、同じこととなります。
[23] document.open では少し違ったものが実行されます。

セッション履歴エントリーの削除

[24] 挿入時にある位置から後のセッション履歴エントリーがすべて削除されることがあります (>>13)。

[26] 履歴の探索であるセッション履歴エントリーセッション履歴から削除されることがあります。

[25] document.open によって同じ文書を持つセッション履歴エントリーがまとめて削除されることがあります。

関連

[9] 結合セッション履歴は、複数のセッション履歴をまとめたものです。

[11] HTTPキャッシュにおいては新鮮寿命などの規定がありますが、 これは必ずしも履歴に適用されるものではありません >>10履歴を戻って腐敗応答表示しても何ら問題ありません。 逆に腐敗していることを利用者表示したり、 Cache-Control: no-store に従ったりしても構いません。

歴史

[27] <iframe> and the History API · Issue #184 · w3c/webcomponents ( ()) <https://github.com/w3c/webcomponents/issues/184>

[29] cbrewster/ServoNavigation: Proposal for Servo Navigation () <https://github.com/cbrewster/ServoNavigation>

[31] Fragment navigation should use replacement enabled (annevk著, ) <https://github.com/whatwg/html/commit/cf02423dc52686d084a3191833d939919b5907fd>

[32] Bug in hash change algorithm with replace flag · Issue #2796 · whatwg/html () <https://github.com/whatwg/html/issues/2796>

[33] Fragment navigation should use replacement enabled by annevk · Pull Request #2869 · whatwg/html () <https://github.com/whatwg/html/pull/2869>