cookie和session作用、区别
实现状态保持的原理
在户登录时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的。整个实现状态保持的流程是这样的:
1.用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理登录业务逻辑,返回响应。此时服务器端生成对应的cookie字符串,响应到前端浏览器。
2.浏览器本地保存cookie值。
3.在登录后用户再向服务器发送请求,则带者浏览器本地保存的cookie值,发送给服务器。4.服务器在接受到请求后,获取到请求参数(里面带有cookie),服务器把获取的cookie值跟之前服务器生成的cookie比较,发现cookie值相同,则默认时同一个用户再访问服务器,从而实现用户登录状态保持。
cookie和session的区别
- cookie和session都是基于键值对的字符串。
2.两个都是都由后端服务器生成的。
3.cookie字符串保存在客户端浏览器中,session值保存在服务器中,session比cookie更安全。
4.我个人理解cookie相当于明文,而session类似于密文,是由后端服务器经过编码后的一段无序字符串。
5.既然session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value;
如果客户端禁止 cookie 能实现 session 还能用吗
Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session了。
假定用户关闭Cookie的情况下使用Session,其实现途径有以下几种:
(1)设置php.ini配置文件中的“session.use_trans_sid = 1”,或者编译时打开打开了“–enable-trans-sid”选项,让PHP自动跨页传递Session ID。
(2)手动通过URL传值、隐藏表单传递Session ID。
(3)用文件、数据库等形式保存Session ID,在跨页过程中手动调用。