Cookie
http(网络传输协议)https(安全)
特点:
无状态 (不知道访问者是谁)
无连接 (连接完成后会断开)
长连接/短连接 (key-alive属性来指定的)
既然我们的http协议是无状态的 那么我们怎么区分对应的访问者(孕育而出了一个sessionID 来做区分)
他访问了我 我给你一个对应的sessionID 他访问了我我同样给他一个sessionID (这个时候我们就可以通过这个sessionID来做区分)
这个sessionID是怎么给到你的呢?
他是通过在访问的时候 给你分发一个sessionID 保存到你的机器上 (存在于你的浏览器上 cookie)sessionID是依赖于cookie进行存储的
cookie会随请求一起过去
这个时候我们的http的无状态就解决了
cookie
刚才在上面我们已经知道了对应的cookie是存储对应的sessionID 那么是不是就证明了我们的cookie是一个容器的(这个容器的大小只有4k) 是一个容器我们就有对应的增删改查的方法
cookie里面是什么样
//name是对应的cookie的名字 key=value expires 过期日期 path 访问路径(才携带cookie) domain 跨域操作 secure 安全
对应的属性有
键=值 (名字=值)
expires 过期时间(关闭浏览器失效)*
path 访问路径(指定对应的路径携带cookie)
domain 跨域 (可以跨域的域名)
secure 安全
URI编码和解码
encodeURIComponent 编码
decodeURIComponent 解码
增删改查
添加 直接赋值
document.cookie = "key=value;"
获取 采用读取字符串的形式
console.log(document.cookie.split(";")[0].split("=")[1]) //拿到value值
删除 设置过期时间
document.cookie = "key=value;expires="+new Date()
修改 重新设置就是修改
document.cookie = "key=hello;"
cookie的特性
1.为了解决http无状态的问题
2.存储只有4k左右
3.他是存储在浏览器上
4.他会随请求携带
5.他可以被伪造和修改(不安全)
cookie和localStorage的区别
localStorage容量大于cookie
localStorage存储的位置和cookie不是一个地方
localStorage对应的不会随请求携带(本地缓存)
cookie 在后续的框架中也会使用 但是他使用的是对应的库(cookie.js)
https://www.mianshigee.com/project/cookie-js/
localStorage的方法
getItem(key) 获取元素
setItem(key,value) 设置元素
removeItem(key) 移除元素
JSON
JSON是一种数据格式(json字符串) 他通用我们对应的网络传输(xml)他是一种数据格式 而在对应的JavaScript他是一种数据类型
json俩种显示方式
对象 {} .key
数组 [] 使用下标
var jsonObj = {}
var jsonArray =[]
反序列化操作 (将字符串变成对象)
JSON.parse() *
eval()
序列化操作 (将对象变成json格式的字符串)
JSON.stringify() *
localstorage和cookie存储的格式(字符串)以后再存储数据的时候直接存储json格式字符串 取出的时候利用反序列化转为对象