#Http(s),Cookie,Sessionについて
勉強ついでに上記3つについて簡単にまとめてみました。
##Http(s)とは
ホームページを表示するための世界共通のルールでホームページを閲覧する上での約束事。
もし約束事を決めずにサーバーやブラウザごとに独自のルールを作っていたら、アクセスする環境によっては表示できないという問題が発生してしまうため、全世界でホームページを表示するためのルールを作ろうというために作れたのがhttp(s)。
##httpsのsは何か
簡単に比較するとhttpは暗号化されていないデータ。httpsは暗号化されているデータ。
sがつくとセキュリティ対策がされている。対策はされてはいるが、URL欄のところでエラーが表示されていた場合、安全とは言い切れないので注意が必要。
##Cookieとは
Cookieとはブラウザに保存されるWebデータのこと。データはクライアント側のパソコンで保存されるため、見ようと思えば見れるが、他人のを勝手に見るのは法律的にアウト。
Cookieを使えば、例えばSNSなどで一度ログインすると、次回開いたときログイン処理をしなくても入れるようになる。
だが、開発側目線で見るとログイン情報をCookieに保存すると一部の悪い大人たちが、Cookieに保存されてるログイン情報を抜きとって悪用する恐れがあるため、Cookieにそのままログイン情報を保存するようなことは基本ない。
##Sessionとは
CookieとSessionの大きな違いは保存先が違うということ。
上記でCookieの保存先はクライアント側のパソコンと書いたが、Sessionの場合はホームページのサーバー側に保存される。
サーバーはホームページを運営してる人しか基本、閲覧、操作できないため、セキュリティ面での安全性はSession > Cookieというような形になり、Sessionのほうに軍配が上がる。
SessionはIDのみCookieの中で保存されている。
なので、Sessionの中身を参照する場合、Cookieの中に保存されてるSessionのIDをサーバー側に投げて、サーバー内にあるIDと関連した情報を持ってくるような形になる。
上記から分かるように、一度サーバーを介して情報を取得しているため、Cookieと比べると実装する際、ひと手間加える必要がある。
##CookieとSessionの比較
上記で長々と書いたが、簡潔に比較すると...
Cookieは手軽に実装できる分、セキュリティ面でSessionより劣っている。
Sessionは実装に手間がかかる分、セキュリティ面でCookieより優れている。
なので、とりあえずこっち使ってればいいとかではなく、その時、その時の状況に応じて使い分けていくのがベスト。