1.cookie
cookie 是存储在浏览器客户端的一小段数据,可以同时被前台与后台操作,cookie可以跨页面 存取 cookie不可以跨服务器访问,但可以跨域cookie是有生命期的,默认是与浏览器进程相同,如果进程退出,cookie会被销毁。
在控制台输入document.cookie可以查看cookie
1.1 cookie获取与设置
将cookie的设置和获取在js文件中封装成函数,下次再用到的时候直接引入该js文件,调用其方法就行
function setCookie(name,value,path,expires){
//设置一天之后失效
var current_data = new Date();
//将日期设置为一天之后的日期
current_data.setDate(current_data.getDate() + expires);
//将日期转成GMT字符串
var expirse_str = current_data.toGMTString();
//设置cookie过期日期
document.cookie = name+"="+value+"; path="+path+"; expires="+expirse_str;
}
function getCookie(name){
var str = document.cookie;
var start = str.indexOf(name+"=")+(name.length)+1;
end = str.indexOf(";",start);
end = end == -1 ? str.length : end;
val = str.substring(start,end);
return val;
}
1.2 参数:cookie除了值,其余的属性是只写
属性 | 描述 |
---|---|
name | 名字 |
value | 值 |
path | 指定cookie生效的路径 / 全站,path=/seven/front" 表示只在front目录下生效,包含其子目录 |
expirse | 设定cookie的生命期,它的值是一个字符串,需要把过期日期转变成字符串toGMTString() |
1.3 特点:
1.cookie是不安全的,可以被客户端更改,因此不要用cookie来存储重要或者敏感数据。所以:
将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中
2.可以跨页面获取cookie
3. cookie并不能无限制的存储,它是有限制的
(1) 数量:浏览器下的cookie数量不能超过100个
(2)每个服务器不能超过20个
(3) 所有的cookie包含他们的属性所占据的数据大小不能超过4K
2. session
session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用 Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个
Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时
仍然能够把session id传递回服务器。
注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。