Web凭证
localStorage
通过浏览器管理
只能主动删除
JS操作代码
document.domain='csdn.net'; localStorage.setItem('key', JSON.stringify({a:1,b:2})); console.log(localStorage.getItem('key')); var data=JSON.parse(localStorage.getItem('key')); console.log(data.a); localStorage.removeItem('key'); console.log(localStorage.getItem('key')); localStorage.clear();
sessionStorage
通过浏览器管理
修改了document.domain会取不到,关闭web标签会删除、也可以主动删除
JS操作代码
document.domain='csdn.net'; sessionStorage.setItem('key', JSON.stringify({a:1,b:2})); console.log(sessionStorage.getItem('key')); var data=JSON.parse(sessionStorage.getItem('key')); console.log(data.a); sessionStorage.removeItem('key'); console.log(sessionStorage.getItem('key')); sessionStorage.clear();
cookie
通过浏览器管理
可以设置浏览器关闭则删除、也可以设置在指定时间后删除
php用法
<?php setcookie($name, $value, $expire, $path, $domain, $secure, $httponly); //$name: cookie名 //$value: cookie值(默认'') //$expire: 失效时间(默认0) //$path: 存储路径(默认'/') //$domain: 作用域(默认[接口域名]) //$secure: 仅在https协议传输(默认false) //$httponly: 不允许JS读取(默认false)
session
通过Web服务器管理
可以主动删除,也可以通过系统回收机制回收
php^7.0.0中session的配置
[Session] ;该配置用来决定session的存储方式 session.save_handler = files ;当session.save_handler = files时,该配置决定你的session文件存储目录 ;session.save_path = "/tmp" ;当session.save_handler = redis时,该配置决定你的session数据存储连接 ;session.save_path = "tcp://127.0.0.1:6379" ;是否只使用服务端生成的session id session.use_strict_mode = 0 ;[session通过cookie管理] ;是否使用cookie session.use_cookies = 1 ;session.cookie_secure = ;只通过cookie来定位session session.use_only_cookies = 1 ;存储session id的cookie的键名字 session.name = self_key ;是否自动session_start() session.auto_start = 0 ;存储session id的cookie生命周期 session.cookie_lifetime = 0 ;存储session id的cookie在客户端存储路径 session.cookie_path = / ;存储session id的cookie作用域 session.cookie_domain = ;存储session id的cookie是否允许被js读取 session.cookie_httponly = ;[session安全] ;session序列化、反序列化处理器名字 session.serialize_handler = php ;session回收概率(session.gc_probability/session.gc_divisor) session.gc_probability = 1 ;session回收概率(session.gc_probability/session.gc_divisor) session.gc_divisor = 10 ;客户端300秒未刷新,则该session会失效,如果通过redis来存储session数据,则此配置为redis键过期时间 session.gc_maxlifetime = 300 ;只有$_SERVER['HTTP_REFERER']包含了该字符串的会话才被认为是有效的 session.referer_check = ;session通过内存缓存,可选值{nocache,private,public,} session.cache_limiter = nocache ;session缓存将在180分钟后过期 session.cache_expire = 180 ;[session id的长度] session.sid_length = 26 ;[禁用Cookie时session的传递] ;是否启用通过URL传递session id session.use_trans_sid = 0 ;URL重写将从html定义的标签中来获取URL。<form>是一个特例,如果你在 ;这里包含了<form>标签,那么URL重写将添加一个<input type='hidden'> ;标签作为附加在url上的信息。除非通过该配置来指定,否则<form>标签的 ;action属性将不会被修改。 session.trans_sid_tags = "a=href,area=href,frame=src,form=" ;URL重写默认不去重写绝对的url,为了启用绝对路径重写,目标主机 ;必须在运行的时候通过ini_set()来指定。<form>标签是一个特例. ;PHP将会检查action属性的URL,而不管session.trans_sid_tags怎样 ;设置。如果没有指定目标主机,$_SERVER['HTTP_HOST']将被用来作为 ;目标主机。该参数的值格式可以这样:'php.net,www.php.net,...'等 ;session.trans_sid_hosts="" ;[转换为指定位的二进制存储] ;定义每个字符在转换时存储了多少个二进制位 session.sid_bits_per_character = 5 ;[文件上传进度查看] ;使文件上传进度通过session跟踪 ;session.upload_progress.enabled = On ; 一旦所有的post数据被读取,则清除进度信息 ;session.upload_progress.cleanup = On ;存储上传进度的session的key的前缀 ;session.upload_progress.prefix = "upload_progress_" ;存储上传进度的session的key的名字 ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" ;文件上传的进度显示应该多频繁(默认每上传1%更新一次进度) ;session.upload_progress.freq = "1%" ;文件上传的进度更新的最小延迟以秒为单位,默认为1秒 ;session.upload_progress.min_freq = "1" ;[写session配置] ;只有当session数据改变时才写session,默认启用 ;session.lazy_write = On