Cookie
Cookie的诞生,为什么叫会话跟踪技术?
-
在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(例如:是否登录、购物车信息、是否已下载、是否已点赞、视频播放进度等等)
-
你把cookie就当成是第一次跟服务器连接后,服务器发给你的身份牌,上面就记录跟你有关的信息,以后只要再跟服务器通信,必须带着这个身份牌。这样一来,关于你是谁?有没有登录过?购物车里有什么信息?服务器当然就很容易知道了。
cookie的特点:
-
只能使用文本文件
-
文件有大小限制(4kb), 数量限制
-
读取有域名限制:不可跨域读取,只能由来自写入cookie的同一域名的网页可进行读取。
简单的讲就是,谁写的cookie,谁才有权利读取 -
时效限制:每个cookie都有时效,最短的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁
cookie的使用
一、添加cookie
-
Document.cookie =“username=123”;//一次写入一个键值对,一次写入多个,只有第一个生效,或者采用&符号链接user=张三&password=123&name=xxxx;
-
保存形式:key=value
-
如果有中文编码问题,使用encodeURIComponent(“xxxx”)编码,再使用decodeURIComponent(document.cookie)解码,能解决中文乱码问题
二、cookie失效时间
-
如果不加这个参数,默认情况下为临时cookie,也就是关闭浏览器则cookie失效。
-
Expires=date,指定在什么时间,cookie被自动清理,如果手动调整系统的时间,让cookie消失,可以进行恢复,此时为假删除,当覆盖某个键值对,并设置失效时间过期时,则cookie被删除,不能恢复
Var date = new Date():
date.setDate(date.getDate() + 7);
document.cookie = "user=" + encodeURIComponent("张三") + ";expires=" + date;
- Cookie的完整存储形式
name=value [;expires=date] [;path=path] [;domain=michael.com][;secure];
中括号是可选,name=value是必选。
- Cookie的路径问题
在同一路径下的网页可以共享cookie,路径不同时,不能访问
6. Cookie的域名问题
- 必须在绑定域名的服务器上才可以设置域名
- 并且只能设置绑定的域名,也就是说,不同服务器间的cookie文件不共享
- Secure安全设置:指明必须通过安全的通信通道来传输(https)才能获取cookie.
cookie作用:
1.可以在客户端上保存用户数据,起到简单的缓存和用户身份识别等作用。
2.保存用户的登陆状态,用户进行登陆,成功登陆后,服务器生成特定的cookie返回给客户端,客户端下次访问该域名下的任何页面,将该cookie的信息发送给服务器,服务器经过检验,来判断用户是否登陆。
3.记录用户的行为。
cookie弊端:
1.增加流量消耗,每次请求都需要带上cookie信息。
2.安全性隐患,cookie使用明文传输。如果cookie被人拦截了,那人就可以取得所有的session信息。
3.Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉