cookie、session、session Strogeとlocal Strongの違い
2121 ワード
まず区別が必要なのはサービスエンドキャッシュで、そのオブジェクトはサーバに保存されています。cookie、session Stroge、local Strongはクライアントキャッシュであり、オブジェクトはブラウザに保存されている。
セッション
sessionオブジェクトはサーバに保存されます。実際、サーバとブラウザの間にはsession idだけが必要であれば、サーバはsession IDに基づいて、ユーザーに対応するセッションオブジェクトを見つけます。セッションデータは一定時間だけ有効です。この時間がserver端に設定されたsession有効期間です。サーバーのsessionストレージデータは安全です。一般的にユーザー情報を保存します。ブラウザは一般データだけを保存するのに適しています。
クッキー cookieデータは、常に同じソースのhttp要求において運ばれる(必要でなくても)。 クッキーは、ブラウザとサーバ間を往復します。session Strageとlocastrageは自動的にサーバにデータを送らず、ローカルにのみ保存されます。 前の条のため、cookiesの大きさが大きすぎてはいけません(4 k)。クッキーはHTTPのリクエストヘッダに携帯されています。 cookieは、設定された有効期間(サービスエンド設定)内で有効であり、max-age=seconds属性を設定することによって、ブラウザクッキーの有効期間をブラウザに教えます。 クッキーの構成はクッキー属性が有名で、値、max-age、path、domain、secure;
クロスドメインはどうやってクッキーを携帯しますか?
まず、cookiesを携帯できないのは同源戦略によるものです。jsはクロスドメインcookiesにアクセスできません。
解決方法サーバ端でCROSプロトコルを用いてドメインをまたいでデータにアクセスする問題を解決するには、レスポンスメッセージヘッダAccess-Coontrol-Alllow-Chredentials値が「true」 である必要があります。と同時に、レスポンスメッセージヘッダAccess-Coontrol-Origin値が単一ドメイン名を指定する設定が必要です。 クライアントは、Ajax要求属性withCredentials=trueを設定し、Ajax要求がすべてCookieを持参するようにする必要があります。 sessionStrogeとlocal Storrageは一つのsessionのデータに対して記憶されています。これらのデータは同じセッションのページにしかアクセスできません。セッション終了後にデータも破壊されます。session Storrageは永続的なローカルストレージではなく、セッションレベルの記憶だけです。 local Storrageは時間制限なしの長期データストアです。自主的に削除しない限り、どれぐらいの期間保存したいですか? は、cookiesに比べてより大きな容量(5 M) である。と同様の操作方法:setItem、getItem、removeItem、clear
セッション
sessionオブジェクトはサーバに保存されます。実際、サーバとブラウザの間にはsession idだけが必要であれば、サーバはsession IDに基づいて、ユーザーに対応するセッションオブジェクトを見つけます。セッションデータは一定時間だけ有効です。この時間がserver端に設定されたsession有効期間です。サーバーのsessionストレージデータは安全です。一般的にユーザー情報を保存します。ブラウザは一般データだけを保存するのに適しています。
クッキー
document.cookie = 'name=cook; max-age=9999; path=/; domain=domain; secure';
document.cookie = 'name=aaa; path=/; domain=domain; secure';
// cookie , 、 ,
// cookie,
// max-age 0 cookie
// cookie, document.cookie ,
// '; ' 。
後記:クロスドメインはどうやってクッキーを携帯しますか?
まず、cookiesを携帯できないのは同源戦略によるものです。jsはクロスドメインcookiesにアクセスできません。
解決方法
// ajax
$.ajax({
type: "GET",
url: url,
xhrFields: {
withCredentials: true // cookie
},
processData: false,
success: function(data) {
console.log(data);
}
});
// axios
axios.defaults.withCredentials=true; // ajax cookie
session Strogeとlocastrage