A、クッキーとセッション
クッキーとセッションは、ユーザーの身元会話モードブラウザを追跡するために使用されています。
違い:
1.状態を保持:クライアントに保存されたクッキー、セッションサーバに保存されています。
2.方法:クッキーのメカニズム:有効期限を設定する必要があり、ブラウザを閉じると、それ以外の場合は表示されなくなります。
セッションのメカニズム:有効期限を設定する必要はありません、サーバーは新しいセッションオブジェクトが判断に従ってがある場合は、セッションを作成し、通常はクライアントにCookieストアのセッションとなります。サーバは要求を受信すると、セッション・オブジェクトを作成する必要があり、それは最初のクライアント要求は、セッションIDが含まれてチェックします。そこSESSIONID場合、サーバはIDに基づいて対応するセッションオブジェクトを返します。クライアントがセッションIDを要求していない場合、サーバはこの応答でクライアントに返された新しいセッションオブジェクトとセッションIDを作成します。通常の相互作用にサーバーに送信されたセッションIDのルールに従って、クライアントのブラウザにセッションIDクッキーを保存。ユーザーがクッキーを無効にした場合は、URL書き換えを使用する必要がありますresponse.encodeURL(URL)によって達成することができ、APIはにencodeURLを終了するには、ブラウザのクッキー、任意の処理なしのURLをサポートしているとき、ある;ブラウザはクッキーをサポートしていないときセッションIDがアドレスにアクセスするためにスプライスされた後の時間は、URLを書き換えます。
3.保存されたコンテンツ:クッキーとテキストの文字列にのみ保存することができ、オブジェクトの任意のタイプをサポートするため、セッションは、データ構造と同様の手順により、ハッシュテーブルメモリを報告しました。
4.ストレージサイズ:
5.セキュリティ:セッションセキュリティがクッキーよりも大きく、
6.シナリオ:
クッキー:(1)ユーザーは、自動ログイン次回を有効にする(またはパスワードを覚えておく)ログに記録するためにウェブサイトを上陸させたかどうかを判断します。私たちはクッキーを削除する場合は、新しいログインから関連する情報を入力するたびにログインする必要があります。
(2)最終の時間は、ログイン情報を保存します。
(3)最後に表示したページを保存
(4)表示回数
セッション:ユーザーごとに保存されたセッション固有の情報、サーバに格納された変数の値は、異なる顧客のセッションIDを区別します。
カート内の(1)オンラインショッピングモール
(2)ユーザのログイン情報を保存します
(3)同じユーザーを使用して別のページのセッション特定のデータに変換します
(4)不正アクセスからユーザを防ぐために
7. 2つの欠点:
クッキー(一時保存):( 1)削除される可能性があり、無効になっています。
(2)セキュリティは、パスワードの暗号化処理を記憶する必要性として、プレーンテキストとして保存され、高くはありません。
(3)サイズは、5000個の文字に相当する容量5キロバイト、制限されています。
(4)別のブラウザは、クッキー異なるドメインが共有しない、通信していません。
(5)毎回クッキーは、サーバ、帯域幅の浪費に渡されます。
(6)コンセプトのCookieデータ・パス(パス)、あなたはクッキーのみ、特定のパスの下に属して制限することができます。
セッション:もっと(1)セッションは何かを保存、オンラインサイトは、サーバーのメモリの圧力が相対的に大きくなり、多数のユーザのためのより多くのサーバーのメモリフットプリント。
あなたはクッキーを無効にした場合(2)クッキー(セッションIDがクッキーに保存されている)に依存して、あなたはURLの書き換えを使用する必要があります、安全ではありません。
(3)セッション変数を作成し、ランダム性をたくさん持っている任意の時点で呼び出すことができるセッション変数の過度の使用は、コード読み取り不能と整備不良になりますように、開発者は、正確なハンドリングを必要としません。
二、webStorage:
webStorageのlocalStorage点(ローカルストレージ)とのsessionStorage(セッションストレージ);
両者の差:
localStorage(ローカルストレージ):長期的、永久保存、共有、相同窓は、異なるブラウザは共有しません。
sessionStorage(会话存储):临时存储,同源窗口不共享,不同浏览器不共享,关闭浏览器消失。
相同点:
1.存储大小相同:一般都是5Mb
2.存储位置相同:客户端
3.存储内容类型:字符串类型
4.获取方式:window.localStorage;window.sessionStorage
优点:
1.存储空间更大:cookie为4KB,而WebStorage是5MB;
2.节省网络流量:WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样将请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;
3.快速显示:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取会比从服务器端获取快得多,所以速度更快;
4.安全性:WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高一些,不会担心截获,但是仍然存在伪造问题;
5.对于那种只需要在用户浏览一组页面期间保存而关闭浏览器后就可以丢弃的数据,sessionStorage会非常方便;
6.WebStorage提供了一些方法,数据操作比cookie方便;
setItem (key, value) —— 保存数据,以键值对的方式储存信息。
getItem (key) —— 获取数据,将键值传入,即可获取到对应的value值。
removeItem (key) —— 删除单个数据。
clear () —— 删除所有的数据
key (index) —— 获取某个索引的key
session:Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户。
(1)网上商城中的购物车
(2)保存用户登录信息
(3)将某些数据放入session中,供同一用户的不同页面使用
(4)防止用户非法登录
7.两者的缺点:
cookie(临时存储):(1)可能被删除,被禁用;
(2)安全性不高,纯文本形式存储,如存储密码则需加密处理;
(3)大小受限,容量5kb,相当于5000个英文字母;
(4)不同浏览器不相通,不同域中的cookie不共享;
(5)每次都需传递cookie给服务器,浪费带宽;
(6)cookie数据有路径(path)的概念,可以限制cookie只属于某个路径下。
session:(1)Session保存的东西越多,就越占用服务器内存,对于用户在线人数较多的网站,服务器的内存压力会比较大;
(2)依赖于cookie(sessionID保存在cookie),如果禁用cookie,则要使用URL重写,不安全;
(3)创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。
二、webStorage:
webStorage分localStorage(本地存储)和sessionStorage(会话存储);
两者区别:
localStorage(本地存储):长期,永久存储,同源窗口共享,不同浏览器不共享;
sessionStorage(会话存储):临时存储,同源窗口不共享,不同浏览器不共享,关闭浏览器消失。
相同点:
1.存储大小相同:一般都是5Mb
2.存储位置相同:客户端
3.存储内容类型:字符串类型
4.获取方式:window.localStorage;window.sessionStorage
优点:
1.存储空间更大:cookie为4KB,而WebStorage是5MB;
2.节省网络流量:WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样将请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;
3.快速显示:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取会比从服务器端获取快得多,所以速度更快;
4.安全性:WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高一些,不会担心截获,但是仍然存在伪造问题;
5.对于那种只需要在用户浏览一组页面期间保存而关闭浏览器后就可以丢弃的数据,sessionStorage会非常方便;
6.WebStorage提供了一些方法,数据操作比cookie方便;
setItem (key, value) —— 保存数据,以键值对的方式储存信息。
getItem (key) —— 获取数据,将键值传入,即可获取到对应的value值。
removeItem (key) —— 删除单个数据。
clear () —— 删除所有的数据
key (index) —— 获取某个索引的key