- PR -

CookieとSessionについて

1
投稿者投稿内容
Raio
常連さん
会議室デビュー日: 2003/10/21
投稿数: 21
投稿日時: 2004-01-28 13:54
基本的なことで申し訳ないのですが

データの保持(たとえばログインのユーザーIDなど)について
Sessionを使う方法と
Cookieを使う方法を検討しています。

そもそもこの2つは何が違うのでしょうか?
自分なりに調べたのですがよくわかりませんでした。

できれば、考え方などの説明があるページをご存知でしたら
お教えいただけないでしょうか?

よろしくお願いいたします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-01-28 14:27
Cookieというのはクライアント側に保存されるものだと思います。
Sessionのデータはサーバー側にあります。

ユーザーIDの場合は、普通は「ログインページで毎回同じIDを入力する手間を軽減する」ということ位にしかCookieは使いません。
毎回ログイン認証しているというのなら別ですが、そうでないなら、例えば正式なID:tanakaで認証された後、次のアクセスで
「IDはsuzukiですよ」
と言われたらsuzukiさんに成り代わられてしまいますから。
Raio
常連さん
会議室デビュー日: 2003/10/21
投稿数: 21
投稿日時: 2004-01-28 14:44
一郎様
ご回答ありがとうございます。

>Cookieというのはクライアント側に保存されるものだと思います。
>Sessionのデータはサーバー側にあります。
とありますが、Cookieについては、クライアント側にファイルとして
あるのでなんとなくイメージはわかるのですが
Sessionについてはサーバー側にあるといっても
どのクライアントからのアクセスなのか?については
どうやって判定しているのでしょうか?
(SessionIDというものを毎回サーバーに送信することで
 判定しているのでしょうか?)


kagura
常連さん
会議室デビュー日: 2003/03/26
投稿数: 27
投稿日時: 2004-01-28 16:01
プログラミングASP.NET
― ASP.NETによるWebアプリケーション実践開発講座 ―
第15回 セッションとビューステート]

同じ@ITさんの情報です。
Raio
常連さん
会議室デビュー日: 2003/10/21
投稿数: 21
投稿日時: 2004-01-28 16:51
kagura様、ありがとうございます。

まさに、知りたかった内容です。
まだ、全てを読んでいませんが
これを参考に、もう一度勉強しなおします。

ありがとうございました。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-01-28 18:01
どもも。がると申します。

引用:

データの保持(たとえばログインのユーザーIDなど)について
Sessionを使う方法と
Cookieを使う方法を検討しています。
そもそもこの2つは何が違うのでしょうか?


んと、この2つは根本的に概念が違います。

Cookieは、もともとHTTPというプロトコルのヘッダ情報
として扱われるものの一つで、これは実態そのものを
さしています。
基本的には「クライアントにデータを保持させることで
クライアント個別にデータを扱える」のがそもそも
だったか、と。

セッションは概念をさすもので、実際にセッションという
機能が「HTTPのどの機能を使って実装しているか」は、
言語その他で色々変わってきます。
ちなみにJavaのセッションは、以前調べたところだと
・基本はCookie
・Cookieが使えない環境だとURLの後ろにデータを貼り付ける
ということを「内部的に処理する」事によって、セッション
という機能を実現しているようです。
ちなみに、kaguraさんの紹介されているPageを読む限り、
.NETでも大体同様の処理をしているように見受けられます。

最近「便利な機能」が増えた分、根っこの技術の話が少なく
なってきてるので、結構大変だと思いますが。
頑張ってください ^^

Webをある程度以上しっかりやるときは、ちとしんどいですが、
一度RFCを読んでみることをお勧めします。日本語訳でよいと
思うので。
RFCをあたる癖をつけると、それが実装上の言葉なのか(Cookie)
概念上の言葉なのか(セッション)が比較的見分けやすいと
思うので。
Raio
常連さん
会議室デビュー日: 2003/10/21
投稿数: 21
投稿日時: 2004-01-29 10:46
がるがる様、ご回答ありがとうございます。

>最近「便利な機能」が増えた分、根っこの技術の話が少なく
>なってきてるので、結構大変だと思いますが。
これは、私も痛感しています。
特に.Netを使用するようになってから、本当に
根っこの部分の理解が必要なくなったと思います。
ですが、問題が発生した場合に、対応が取れません・・・

アドバイスなどありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)