Webフロントエンドデータストア-クッキー機構
2875 ワード
HTTPCookieは、通常はクッキーと呼ばれ、クライアントがセッション情報を記憶するために用いられる.例えば、私たちが普段使っているブラウザは、あるウェブページのログインユーザ名を保存しています.ブラウザが提供する仕組みです.javascriptによってクッキーを処理します.すなわち、BOMのdocument.co okie属性です.
Cookieは性質的に特定のドメイン名に結び付けられています.クッキーを設定した後、そのドメイン名を作成するために要求を送信すると、このクッキーが含まれます.この制限は、cookieが承認された受信者にしかアクセスできず、他のドメインにアクセスできないことを保証する.各ドメインのクッキー総数は限られていますが、ブラウザ間にはそれぞれ違いがあります.火狐制限は50個で、IE 7とその後のバージョンは全部50個で、safariとchromeは各ドメインのcookie数量制限に対して硬性規定がない.
一、Cookieの構成:
名前:クッキーの名前は、大文字と小文字を区別しません.
値:クッキーに格納された文字列は、URLで符号化されなければならない.
cookieはどのドメインに対して有効であり、明確に決定されていない場合、cookieが設定されているドメインから来たものとみなされる.
パス:ドメインを指定するパスは、cookieをサーバに送信するべきです.例えば、設定http://www.wrox.com/books訪問することができます.同じドメイン名の場合でもhttp://www.wrox.comのページはクッキー情報を送信しません.要求しても同じドメイン名から来ます.
削除時間:cookieを削除するための正確な時間、この値はGMTフォーマットの日付(Wdy、DD-Mon-YYY HH:MM:SS GMT)です.
安全標識:指定後、cookieはSSL接続を使用する時のみ料理をサーバーに送ります.例えばhttpsしか使えません.httpでは送れません.
二、javascript処理cookie
Cookieフォーマット:
Dcument.co okie=name=value;expires=expiration_タイムpath=domain_パスdomain=domain_name名前とキーパッドだけが必要です.
例えば、name=sssを1日間、ドメイン名はwww.baidu.comで、パスはwww.baidu.com/book sです.
Dcument.co okie="name=sss"expires=(Date.getDate()+1*24*3600*1000).toGMT String()domain=www.baidu.compath="wwww.baidu.com/book s;
このような読み書きは直感的ではなく、普通は関数を書いてクッキーの機能を簡略化します.基本的な3つの操作:設定、読み込み、削除.
Cookieは性質的に特定のドメイン名に結び付けられています.クッキーを設定した後、そのドメイン名を作成するために要求を送信すると、このクッキーが含まれます.この制限は、cookieが承認された受信者にしかアクセスできず、他のドメインにアクセスできないことを保証する.各ドメインのクッキー総数は限られていますが、ブラウザ間にはそれぞれ違いがあります.火狐制限は50個で、IE 7とその後のバージョンは全部50個で、safariとchromeは各ドメインのcookie数量制限に対して硬性規定がない.
一、Cookieの構成:
名前:クッキーの名前は、大文字と小文字を区別しません.
値:クッキーに格納された文字列は、URLで符号化されなければならない.
cookieはどのドメインに対して有効であり、明確に決定されていない場合、cookieが設定されているドメインから来たものとみなされる.
パス:ドメインを指定するパスは、cookieをサーバに送信するべきです.例えば、設定http://www.wrox.com/books訪問することができます.同じドメイン名の場合でもhttp://www.wrox.comのページはクッキー情報を送信しません.要求しても同じドメイン名から来ます.
削除時間:cookieを削除するための正確な時間、この値はGMTフォーマットの日付(Wdy、DD-Mon-YYY HH:MM:SS GMT)です.
安全標識:指定後、cookieはSSL接続を使用する時のみ料理をサーバーに送ります.例えばhttpsしか使えません.httpでは送れません.
二、javascript処理cookie
Cookieフォーマット:
Dcument.co okie=name=value;expires=expiration_タイムpath=domain_パスdomain=domain_name名前とキーパッドだけが必要です.
例えば、name=sssを1日間、ドメイン名はwww.baidu.comで、パスはwww.baidu.com/book sです.
Dcument.co okie="name=sss"expires=(Date.getDate()+1*24*3600*1000).toGMT String()domain=www.baidu.compath="wwww.baidu.com/book s;
このような読み書きは直感的ではなく、普通は関数を書いてクッキーの機能を簡略化します.基本的な3つの操作:設定、読み込み、削除.
var cookieUtil={
/* cookie*/
set:function(name,value,expires,path,domain,secure){
var cookie=encodeURIComponent(name)+"="+encodeURIComponent(value);
if(expires instanceof Date){
cookie+="; expires="+expires.toGMTString();
}else{
var date=new Date();
date.setTime(date.getTime()+expires*24*3600*1000);
cookie+="; expires="+date.toGMTString();
}
if(path){
cookie+="; path="+path;
}
if(domain){
cookie+="; domain="+domain;
}
if (secure) {
cookie+="; "+secure;
}
document.cookie=cookie;
},
/* cookie*/
get:function(name){
var cookieName=encodeURIComponent(name);
/* cookie*/
var restr="(^| )"+cookieName+"=([^;]*)(;|$)";
var reg=new RegExp(restr);
var cookieValue=document.cookie.match(reg)[2];
/* cookie*/
/*var cookieStart=document.cookie.indexOf(cookieName+“=”);
var cookieValue=null;
if(cookieStart>-1){
var cookieEnd=document.cookie.indexOf(";",cookieStart);
if(cookieEnd==-1){
cookieEnd=document.cookie.length;
}
cookieValue=decodeURIComponent(document.cookie.substring(cookieStart
+cookieName.length,cookieEnd));
}*/
return cookieValue;
}
}