Cookie

Cookie的诞生,为什么叫会话跟踪技术?

  1. 在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(例如:是否登录、购物车信息、是否已下载、是否已点赞、视频播放进度等等)

  2. 你把cookie就当成是第一次跟服务器连接后,服务器发给你的身份牌,上面就记录跟你有关的信息,以后只要再跟服务器通信,必须带着这个身份牌。这样一来,关于你是谁?有没有登录过?购物车里有什么信息?服务器当然就很容易知道了。

cookie的特点:

  1. 只能使用文本文件

  2. 文件有大小限制(4kb), 数量限制

  3. 读取有域名限制:不可跨域读取,只能由来自写入cookie的同一域名的网页可进行读取。
    简单的讲就是,谁写的cookie,谁才有权利读取

  4. 时效限制:每个cookie都有时效,最短的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁

cookie的使用

一、添加cookie

  1. Document.cookie =“username=123”;//一次写入一个键值对,一次写入多个,只有第一个生效,或者采用&符号链接user=张三&password=123&name=xxxx;

  2. 保存形式:key=value

  3. 如果有中文编码问题,使用encodeURIComponent(“xxxx”)编码,再使用decodeURIComponent(document.cookie)解码,能解决中文乱码问题

二、cookie失效时间

  1. 如果不加这个参数,默认情况下为临时cookie,也就是关闭浏览器则cookie失效。

  2. Expires=date,指定在什么时间,cookie被自动清理,如果手动调整系统的时间,让cookie消失,可以进行恢复,此时为假删除,当覆盖某个键值对,并设置失效时间过期时,则cookie被删除,不能恢复

Var date = new Date():

date.setDate(date.getDate() + 7);

document.cookie = "user=" + encodeURIComponent("张三") + ";expires=" + date;

  1. Cookie的完整存储形式

name=value [;expires=date] [;path=path] [;domain=michael.com][;secure];
中括号是可选,name=value是必选。

  1. Cookie的路径问题

在同一路径下的网页可以共享cookie,路径不同时,不能访问
6. Cookie的域名问题

  1. 必须在绑定域名的服务器上才可以设置域名
  2. 并且只能设置绑定的域名,也就是说,不同服务器间的cookie文件不共享
  1. Secure安全设置:指明必须通过安全的通信通道来传输(https)才能获取cookie.

cookie作用:

1.可以在客户端上保存用户数据,起到简单的缓存和用户身份识别等作用。

2.保存用户的登陆状态,用户进行登陆,成功登陆后,服务器生成特定的cookie返回给客户端,客户端下次访问该域名下的任何页面,将该cookie的信息发送给服务器,服务器经过检验,来判断用户是否登陆。

3.记录用户的行为。

cookie弊端:

1.增加流量消耗,每次请求都需要带上cookie信息。

2.安全性隐患,cookie使用明文传输。如果cookie被人拦截了,那人就可以取得所有的session信息。

3.Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉

原文地址:https://www.cnblogs.com/yinxingen/p/7903565.html