Webセッションとは何か?ついでにクッキーとは何か?

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
Q&A image

Webの世界でセッションと言えば『ブラウザからページを表示してブラウザを閉じるまでの間』『訪問』という答えを聞きます。

Webマーケティングが注目されてから言われているように感じます。

しかし、セッションという言葉は、場所・人によって意味がちがいます。

あらためてセッションの意味を考えます。ついでに関係の深いクッキーについても説明します。

セッションは場所・人によって意味がちがう

ブラウザからページを表示してブラウザを閉じるまでの間

訪問

Webの知識のない人にセッションを説明するとき、こう説明する人が多くなっている気がします。

ぼくも同じように説明しています。でも『セッションの意味はこれだ!』と断定されると困ってしまいます。

『訪問』がそうですが、本来の意味と全くちがいます。訪問は『session』ではなく『visit』ですよね?

『セッション = 訪問』はWebマーケティング用語?

これは、Webマーケティングが注目されてから広がったように思います。

Googleアナリティクスなどウェブアクセス解析を勉強した人はこの意味で使っていないでしょうか?

セッションの本来の意味はちがいます。この表現は『遠からず近からず、やっぱり遠い』といったところです。

とくに、Webの仕事をしているシステムエンジニア・プログラマには通用しません。彼らは本来のセッションの意味で使うからです。

通用するのは、Webの人でも『Webマーケター』『Webアナリスト』『Webコンサル』ぐらいでしょう。少なくとも『誰にでも通用するWeb用語』ではありません。

ここでは、『本当の意味』でのセッションを説明します。技術的なこと、専門用語はなるべく使わないで進めます。

セッションの英単語の意味

sessionの英単語は

何かがはじまっているようす

という意味です。

国会の開会、裁判所の開廷などで使われます。

音楽業界で『セッションする』といいますが、『本来なら一緒にやるはずのない、1回限りの希少なことがはじまる』というところからきています。

Webのセッションとは?

Webのはなしに戻しましょう。

Webのセッションは、『ブラウザからの訪問』にかぎらず

なにかの始まりから終わりのあいだ

の処理のまとまりのことです。

Webのしくみを知っているプログラマ・システムエンジニアは、セッションと聞くと

始まりから終わりまでなにかの情報を保持しつづける

という条件が頭に浮かびます。

彼らはセッションを

それぞれ独立した処理に共有情報をもたせて、処理につながりをつくる

と解釈します。具体的なセッション機能を見てみましょう。

ログイン機能

ログイン機能では、ログインをすると

  • ボタンを押してログアウト。
  • ブラウザを終了してログアウト。
  • ブラウザを終了してもある一定時間は維持しつづけてその後ログアウト。

など、ログアウトが行われるまでログイン情報は維持されます。

その間にはページの遷移もあればブラウザの終了・再開もあります。あたりまえに思うかもしれませんが、これはセッションを使わなないとできません。

Webのhttp通信ではページを表示すると処理は終了します。ページを遷移するとき、ページ間に処理のつながりはありません。

Webページの表示はWebサーバーが担当しますが、Webサーバーから見ると、ページの遷移とブラウザを一度閉じて再開するのにちがいはありません。ブラウザからページ表示のリクエストを1件受信するだけです。

1ページ表示は1処理でそれぞれ独立しています。互いに干渉しません。

Webページのボタンもおなじです。操作感でつながっているように感じますが、クリックする前に処理は終わっていて、クリックすることで新しい処理が始まります。

Webの処理は

開始 -> 終了 -> 開始 -> 終了 -> ...

のくり返しです。

ログイン機能がどれだけセッションに支えられているか分かるでしょう。セッションがなければ処理の連続性・継続性は維持できません。

ショッピングサイトのカート機能

ショッピングサイトのカート機能も同じです。カートに入れた商品は、キャンセルするか、商品を購入しないかぎり何日でも残ってますよね?

これもセッションによって実現されています。

  • Webは1ページ表示で1処理。
  • Webサーバーから見るとページ遷移とブラウザの再起動に違いはない。
  • Webの処理は、『開始』→『終了』→『開始』→『終了』→...の繰り返し。

セッションは、独立した個々の処理に情報を共有させて、連動した処理のまとまりを作ること。

セッションは単位ではなく機能

いまでは、セッションは単位のように使いますが

本来は機能

です。

もともとは機能なので、セッションといっても場所・人によって意味は変わります。

Webの世界にいると、はなしの前後でなんとなく判断できてくるのですが、ほかと区別して

ログイン(の)セッション

カート(の)セッション

と呼んだりします。

機能だからいえる表現ですね?

これは決して単位としてのセッションを否定していません。むしろこちらのほうが多く使われるでしょう。

複数の独立した処理をひとまとめにしたものを1セッションといいます。1袋みたいなものです。

セッションタイムアウトとは何か?

セッションは、独立した処理をひとまとめにする特長から、タイムアウトの機能がついています。

セッションタイムアウト

といいます。

セッションは、内部でいくつもの処理が独立して開始・終了をくり返すので、セッションを始めたら必ず終わらせることがむずかしいです。

内部の処理はそれぞれ独立しているので、ひとつひとつの処理は、自分の処理が終わったあとに別の処理が始まるのか分かりません。

なので、内部の処理は、処理の最後がセッションの終わりなのかも分かりません。

そこでセッションは、セッションの終わりの条件を決めて、セッションが始まってから放置されないようにセッションタイムアウトを設定します。

これで、ぜんぶの処理がセッションを終わらせなくても、最後は時間切れで確実に終わります。

ネットバンキングはログアウトボタンを用意します。それ以外はログインタイムアウトで終わるようにしています。ログインタイムアウトがセッションタイムアウトです。

ログアウトボタンを押さずにブラウザを閉じて、後日ブラウザからページを表示すると

前回のログインから一定時間が過ぎたのでタイムアウトしました。

お手数ですが再度ログインしてください。

と表示されますよね?

これがセッションタイムアウトです。

クッキー(Cookie)について

セッションを語るうえでクッキーははずせません。

クッキーは、Webサーバーにあるコンテンツがブラウザに情報を保存するために作成するファイルのことです。

セッションは、いくつもの処理の間で情報を共有します。機能によっては、ページを見る側(ブラウザ)で情報を保存します。その保存先がクッキーです。

ログイン状態の保存

ログイン画面にある『ログイン状態を保存する』のチェックボックスを見かけます。

これにチェックすると、クッキーにログイン情報が保存されます。

一般的には、数週間から数か月の長いタイムアウト時間が設けられ、ログアウトするかタイムアウトにならないかぎり、クッキーにログイン情報は残りつづけます。

ブラウザでサイトページを開いたら、クッキーの情報から自動的にログイン作業を行ない、ユーザーのログイン作業を省略します。

ショッピングサイトのカート

ショッピングサイトのカートの中身は、ブラウザを閉じても、そのサイトでログインしていなくても、別の日にサイトのカートを見ると前回の情報が表示されます。

これも、クッキーにカート情報が保存されています。

ブラウザでサイトページを開いたら、クッキーからカート情報を取りだし、カートの中身を復元します。



クッキーに保存する情報は、ログイン情報そのものや、カート情報そのものではありません。

以前は情報そのものだったのですが、セキュリティ上マズイということで、その方法はなくなってきています。

現在は、ブラウザとWebサーバーだけが共有する暗号化されたものや、ワンタイムパスワードなどがクッキーに保存されます。

それまでは、クッキーを盗んでファイルを開けば、中身を見ることができました。

しかしいまは、暗号化されて意味不明のものだったり、ワンタイムパスワードなので、盗んで悪用するときにはすでに意味のないものだったりします。

なので、クッキーを盗んだだけでは意味がありません。悪いことをするには、もうひとつ手間をかける必要があるのでセキュリティは上がっています。

しかし、時間稼ぎのところがあるので100%安心ではありません。

最後に

セッションは『ブラウザでページを開いてから閉じるまでの間』以外にたくさんあることがわかると思います。

少なくとも『訪問』ではないことはたしかでしょう。なんとなく『訪問』になったいきさつは想像できます。

ウェブアクセス解析では、訪問、訪問者数、訪問時間という言葉があります。

訪問時間は、訪問者がページを閲覧した時間の総和

訪問は、ページを閲覧し始めてから最後のページを離脱するまで

(ブラウザでページを開いてからブラウザを閉じるまで)

ある時期を境にセッションと言いはじめた(Googleアナリティクス?)

セッションは、まえは『訪問』と呼ばれたもの

中身は変わらず呼び方が変わっただけなので、『セッションは訪問』が通用した

という感じだと思います。

この言葉の意味のビミョーなすれ違いは、Googleアナリティクスのセッション継続時間の不正確さ問題に表れています。

問題の本質は『セッション継続時間』=『訪問時間』だと思っているところです。

セッションを本当の意味でとらえる人は、

そもそもセッションは終わりが不確実だから、時間を計測するのはムリがあるよね?

で終わりです。セッション継続時間と訪問時間はちがうものと考えます。

ただ、その無理をどうにかしようとするGoogleの技術者たちを尊敬します。

とんでもなく頭がいいので、うまいことできてるんでしょうね?

前のページ
プロセスとスレッドの違い - ついでにタスクとジョブ -
かんたんな図で見る、DHCPってなんだ?
次のページ
最近Webカテゴリでよく読まれている記事です。
blog image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!