客户端存储cookie

1.cookie是一种早期的客户端存储机制,起初是针对服务器端脚本的设计使用的。

尽管在客户端提供了非常繁琐的api 来操作cookie,但他们难用至极,而且只能

存储少量的文本数据,任何以cookie形式存储的数据无论服务端是否需要,每一次http请求

都会把这些数据传输到服务端。cookie目前任然被客户端程序员大量使用的一个重要原因是:

所有新旧浏览器都支持它。但是,随着Web Storage 的普及,cookie最终会回到最初的状态:

作为一种被服务端脚本使用的客户端存储机制。

2.cookie的属性:有效期和作用域

name/value,名/值对。有效期daysLive:cookie的有效期和整个浏览器进程而不是单个浏览器窗口

的有效期一致。可以通过max-age属性设置cookie的有效期。

作用域:cookie的作用域不是局限于浏览器的单个窗口中,而是在这个浏览器的进程;

3.保存cookie

cookie的属性值设置为一个字符串形式的值:name=value

example:document.cookie = "version="+ encodeURLComponent(document.lastMNodified);

4.设置cookie

5.存储cookie

function cookieStorage(maxage, path) {
//获取一个存储全部cookie信息的对象
var cookie = (function() {
var cookie = {};
var all = document.cookie;
if (all == "") {
return cookie;
}
var list = all.split(";");
for (var i = 0; i < list.length; i++) {
var cookie = list[i];
var p = cookie.indexOf("=");
var name = cookie.substring(0, p);
var value = cookie.substring(p + 1);
value = decodeURIComponent(value);
cookie[name] = value;
}
console.log(cookie);
}());

//将所有的cookie的名字存储到一个数组中
var keys = [];
for(var key in cookie){
keys.push(key);
};
//定义存储api公共属性和方法
//存储属性的个数
this.length = keys.length;
//返回第n个cookie的名字,如果n越界则返回null
this.key = function(n){
if(n<0 || n>keys.length){
return null;
}
return keys[n];
};
//返回指定名字的cookie的值,如果不存返回null
this.getItem = function(name){
return cookie[name] || null;
};
//存储cookie的值
this.setItem = function(key,value){
if(!(key in cookie)){
keys.push(key);
this.length++;
}
cookie[key] = value;
var cookie = key + "=" + encodeURIComponent(value);
//将cookie的属性也加入到该字符串中
if(maxage) cookie += ";max-age=" + maxage;
if(path) cookie = ";path=" + path;
document.cookie = cookie;
};
//删除指定的cookie
this.removeItem = function(key){
if(!(key in cookie)) return;
delete cookie[key];
for(var i = 0;i<keys.length;i++){
if(keys[i] === key){
keys.splice(i,1);
break;
}
}
this.length--;
document.cookie = key + "=; max-age=0";
};
this.clear = function(){
for(var i = 0;i<keys.legnth;i++){
document.cookie = keys[i] + "=; max-age=0";
}
cookie = {};
keys = [];
this.length = 0;
}

}

原文地址:https://www.cnblogs.com/zhengao/p/8184882.html

时间: 2024-10-17 09:28:48

客户端存储cookie的相关文章

客户端存储cookie ---(优缺点及定义及用途)

什么是cookie cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制,可以由JavaScript对其进行操作(设置.读取.删除) cookie的特性 cookie可以实现跨页面全局变量 cookie可以跨越同域名下的多个网页,但不能跨域使用 同一个网站中所有页面共享一套cookie 可以设置有效期限 存储空间为4KB左右 cookie的优点 cookie可以跨越同域名下的多个网页使用 cookie可以实现跨页面全局变量 同一个网站中所有页面共享一套cookie 可以设

[JS]笔记15之客户端存储cookie

-->本地存储发展情况 -->什么是cookie -->cookie优缺点 -->cookie的设置.读取.删除 -->cookie应用 本地存储发展情况 一.什么是cookie 1.什么是cookie cookie是存储于访问者计算机中的变量cookie是浏览器提供的一种机制,可以由JavaScript对其进行操作(设置.读取.删除) 2.cookie的特性 cookie可以实现跨页面全局变量cookie可以跨越同域名下的多个网页,但不能跨域使用同一个网站中所有页面共享一套

session cookie区别 客户端存储

1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆.例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话. 而Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意

Android本地化存储Cookie(针对HttpClient)

因为最近有人问我怎么保存HttpClient的Cookie, 所以这里写下, 顺便记录总结吧. 当然, 有Android网络编程经历的童鞋一看就懂喇~ 就不多说了, 直接上代码: /** * 本地存储Cookie * @param response */ private void saveCookies(HttpResponse response) { SharedPreferences preferences = getSharedPreferences("cookies", MOD

Web - 客户端存储的几种方式

客户端存储主要方便一些APP离线使用.今天就来说说客户端存储的方法有多少? 说在最前面的一句:所有的客户端存储都有一个原则:读写的数据必须要同域 1 Cookie Cookie是一项很老的技术的,就是因为它老,所以兼容性还是不错的.常见的JS操作Cookie的代码如下: function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) do

常用的本地存储-----cookie篇

1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要最新数据也可以减少向服务器的请求次数,从而减少用户等待从服务端获取数据的时间. 二是网络状态不佳时仍可以显示离线数据. 2.本地存储 用chrome浏览器打开一个网页,F12进入开发者模式,点击Application,我们可以看到: 以上的Local Stroage . Session Stroage . IndexedDB

客户端存储之HTML5 web存储

最近在学习如何实现客户端存储,这篇文章将主要分析H5的web storage以及它与传统的cookie之间的区别. web存储与cookie的区别以及优势: 1.cookie只适合存储少量文本数据,而web存储可存储大量数据 2.以cookie存储的数据,无论服务器端是否需要,每次HTTP请求时,都会将cookie数据传送到服务端,有时会造成带宽浪费,而web storage 中的数据只会存储在本地 3.web storage有更加丰富易用的接口,比如setItem().getItem().re

第十八章:客户端存储

写在本章开始前: 第十七章作为独立的一章,涉及到jQuery的方方面面,是篇幅很长的一章.为了更新客户端存储(本章),特跳过十七章.(十七章将在本章完成后继续更新,望大家关注.) web应用允许使用浏览器提供的API实现将数据存储在用户电脑上.这种客户端存储相当于赋予了web浏览器记忆功能.比方说,web应用就可以用这些方式来“记住”用户的偏好甚至是用户的所有状态信息,以便准确地“回忆”起用户上一次访问的位置.客户端存储遵循“同源策略”,因此不同站点的页面是无法读取对于存储的数据.而同一站点的不

【Java编码准则】の #02不要在客户端存储未加密的敏感信息

当构建CS模式的应用程序时,在客户端侧存储敏感信息(例如用户私要信息)可能导致非授权的信息泄漏. 对于Web应用程序来说,最常见的泄漏问题是在客户端使用cookies存放服务器端获取的敏感信息.Cookies是由web服务器创建的,它具有一个指定的有效时间,保存在客户端.当客户端连接上服务器端时,客户端使用cookies中存储的信息向服务器端进行认证,通过后服务器端返回敏感信息. 在XSS攻击下,Cookies不能保证敏感信息的安全.无论是通过XSS攻击,还是直接对客户端的攻击,攻击者一旦获取到