session 和 cookie
-
了解概念
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。 -
什么是cookie?
cookie是将数据持久化存储到客户端的一种技术。
网站可以将数据写到浏览器中, 一个网站最多能在一个浏览器写20个cookie。
一个浏览器能够设置的总cookie数最多为300个,每个不能超过4kb。
cookie既能保存在文件中,也能保存在内存中。 -
设置cookie
①设置cookie
setcookie(var1 , var2, var3); var1: cookie的名称 var2: 名称对应的值, 可选参数 var3: cookie的有效期, 可选参数 setcookie函数的参数3可以控制cookie有效期参数3设置为-1 或者不设置,关闭浏览器即失效参数3设置为 time()+秒数,则在当前时间点的多少秒之后失效
②
删除
setcookie函数第二个参数设置为null,就可以删除cookie setcookie('name', null);
-
cookie补充:
①使用$_COOKIE
预定义数组来读取cookie
②cookie的有效范围: 当前目录及子目录;上级目录无效 -
session小结:
①将数据保存在服务器端,安全性高,但是不能保存大量的数据。一般来讲session当中保存的都是用户信息。
②使用session时,首先要使用 session_start函数开启session
③设置和读取session时,都是用$_SESSION['name'] = 'zs'; $_SESSION['name']
;
④session的有效范围,在一个域名下设置session,在整个域名范围内都有效
⑤session有效期: 关闭浏览器,session就消失
⑥删除session
unset($_SESSION[‘name’]);
删除单个session
session_destroy();
删除所有session如果没有cookie的支持,session是用不了的。
cookie中只能存字符串类型的数据,session中可以存各种类型数据。
sessionStorage 和 localStorage
-
Web存储
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5 规范提出了相关解决方案。 -
window.sessionStorage
①生命周期为关闭浏览器窗口
②在同一个窗口(页面)下数据可以共享
③大小约 5M
④只能存储字符串,对象类型通过 JSON.stringify() 编码后存储window.sessionStorage用法: ①设置: var storage = window.sessionStorage; storage.setItem("name", dzx); 或 sessionStorage.setItem("name", "value"); ②获取: var storage = window.localStorage; 或 var site = sessionStorage.getItem("name"); var val = storage.val; ③删除: storage.removeItem("name");
-
window.localStorage
①永久生效,除非手动删除(服务器方式访问然后清除缓存)
② 可以多窗口(页面)共享
③大小约 20M
④只能存储字符串,对象类型通过 JSON.stringify() 编码后存储▶window.localStorage用法: ①设置: var storage = window.localStorage; storage.setItem("name", dzx); 或 localStorage.setItem("name", "value"); ②获取: var storage = window.localStorage; 或 var name= localStorage.getItem("name"); var val = storage.val; ③删除: storage.removeItem("name");
-
总结
①setItem(key, value) 设置存储内容
②getItem(key) 读取存储内容
③removeItem(key) 删除键值为key的存储内容
④clear() 清空所有存储内容