【运维面试100问】(十三)谈谈session和cookic的区别

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

 谈谈session和cookic的区别

1. 概念
1.1 Session :存储在服务器端,保存用户名、登陆状态等信息。
1.2 Cookies :由服务器下发给客户端,保存在客户端的一个文件里。
保存的内容主要包括: SessionID

区别

2.1 cookie 数据存放在客户的浏览器上, session 数据放在服务器上 .
2.2 cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗考虑到安全应当使用 session
2.3 设置 cookie 时间可以使 cookie 过期。但是使用 session-destory (),我们将会销毁会话
2.4 session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方
面,应当使用 cookie
2.5 单个 cookie 保存的数据不能超过 4K ,很多浏览器都限制一个站点最多保存 20 cookie (Session 对象没有对
存储的数据量的限制,其中可以保存更为复杂的数据类型 )
注意 :
session 很容易失效 , 用户体验很差 ;
虽然 cookie 不安全 , 但是可以加密 ;
cookie 也分为永久和暂时存在的 ;
浏览器 有禁止 cookie 功能 , 但一般用户都不会设置 ;
一定要设置失效时间 , 要不然浏览器关闭就消失了 ;
例如 :
记住密码功能就是使用永久 cookie 写在客户端电脑,下次登录时,自动将 cookie 信息附加发送给服务端。
application 是全局性信息,是所有用户共享的信息,如可以记录有多少用户现在登录过本网站,并把该信息展示
个所有用户。
两者最大的区别在于生存周期,一个是 IE 启动到 IE 关闭 .( 浏览器页面一关 ,session 就消失了 ) ,一个是预先设置的生
存周期,或永久的保存于本地的文件。 (cookie)
Session 信息是存放在 server 端,但 session id 是存放在 client cookie 的,当然 php session 存放方法是多样化的,
这样就算禁用 cookie 一样可以跟踪
Cookie 是完全保持在客户端的如: IE firefox 当客户端禁止 cookie 时将不能再使用
对服务器压力:由于 Session 数据存储在服务器,如果并发访问的用户非常多,可能会给服务器带来较大压力。而 Cookie 数据存储在客户端,不会给服务器带来额外压力

解决多地共享session的服务---也就是常说的跨域问题:

常使用的中间件是 memcache服务

你可能感兴趣的:(linux,运维)