一、cookie
1.什么是cookie?
cookie是浏览器的储存空间,某些浏览器的服务器用来识别用户的身份,也被成为浏览器缓存。
2. cookie的特点是什么?
cookie的特点种类比较繁多,这里只记录下几个最常用的特点:
1.cookie的存储大小为4k;
2.cookie中的数据会在请求中携带,携带的数据在请求头中;
3.同一个浏览器的多个页面可以共享cookie的数据;
4.不同浏览器的cookie数据不能共享;
5.cookie默认过期时间为会话级别,一旦关闭浏览器就会被注销,cookie的过期时间可以设置;
6.服务器端不能直接操作cookie,服务器获取的cookie的数据是请求头中的数据,设置的是响应头,通知浏览器去如何设置cookie。
3.cookie的三种操作方式是什么?
1.通过原生JS操作cookie(了解即可,实际操作用的不多)
- 设置cookie值 document.cookie = " name = XiaoMing"
- 获取cookie值 document.cookie(返回的所有cookie值以字符串的方式返回)
2.通过jQuery.cookie操作cookie
- 设置 $.cookie( key,value )
- 获取 $.cookie( key )
- 删除 $.removeCookie( key )
- 设置过期时间 $.cookie( key,value,{expires:过期天数} )
3.通过PHP操作相应头间接操作cookie
- 设置 setcookie( key,value )
- 设置过期时间 setcookie( key,value,time() + 7 * 24 *3600 )
- 删除(删除过期时间为过去时间) setcookie( key,value,time() - 1 )
- 获取 通过超全局变量$_COOKIE
二、session
1.什么是sessio?
session可以先简单理解为服务器的储存空间。
2.session的基本特征有哪些?
- 通过 $_SESSION获取session
- $_SESSION是一个关联数组
- 使用之前必选先session_start()
3.session的工作原理是什么?
- 该用户是第一次访问(该用户cookie中没有sessionId), 生成sessionid
- 根据 sessionid 创建 session 文件, 我们可以在 session 空间存储用户数据
- 自动设置响应头, 将 sessionid 传递给浏览器端
- 浏览器端接收到响应, 解析响应头, 将 sessionid 设置到 cookie 中去
- 第二次访问, cookie 中的数据会在请求时携带, 所以请求携带了 sessionId
- 服务器端就可以根据 sessionid 找到对应的 session 文件, 读取用户数据
4.操作方式
- 获取 $_SESSION
- 设置 $_SESSION[‘name’]=‘LiMing’
- 删除 unset( $_SESSION[‘name’] )
- 清空所有 $_SESSION = []
- 销毁 session 文件session_destroy()
- 获取 sessionid session_id()