一、首先为什么会有session和cookie?
http是一种无状态的协议,无状态指可以理解为打开网站的每一个页面都是需要登录的,这样的话用户不得疯了。
所以Session和Cookie就是为解决这个问题而提出来的两个机制
二、Session和Cookie介绍
Cookie,Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。
包括:名字,值,过期时间,路径 和域, key-value型式
分类为:会话cookie(浏览器关闭即失效)和持久化cookie(有过期时间,过期后会自动从客户端硬盘删除)
Session:存在服务器的一种用来存放用户数据的类HashTable结构。
浏览器第一次发送请求时,服务器自动生了一Hash Table和一个seesionID来唯一标识这个Hash Table,并将其通过响应发送到浏览器。第2次请求时会将此sessionID一块请求一并发送给服务器,服务器从header中提取sessionID,并和已保存的sessionID对比,找到对应的HashTable
三、cookies禁用
session需要借助于cookies才可以正常工作,如果客户端完全禁止cookie,session将失效
处理:url重写,就是把session id直接附加在URL路径 的后面
四、Session和Cookie区别
1. session 存储在服务器,cookie存储在客户端
2. session比cookie更安全,cookie可以分析并进行cookie伪造、欺骗 ,重要信息放session,不重要的放cookie
3. session会在一定的时间内保存在服务器内存中,过多会占用服务器性能(session服务器)
4. session适合做客户的身份验证,cookie适合保存用户的个人设置,爱好等
5. 单个cookies在客户端的限制是3k,不同浏览器所含cookie的最大个数不同,一般30-50个,session一般没有限制
四、cookie测试
1. 对话cookie:退出web系统时cookie失效,即重新登录后没有上次操作的痕迹
2. 对于持久cookie: 退出web系统后仍然起作用,即重新登录后保留上次操作的痕迹
3. 对于持久cookie:更新测试,即更新页面信息或者重新登录后, cookie有更新,且check正确性
4. cookie相关设置:禁用、 cookie使用级别设置等
5. 不同浏览器访问应用程序,使用的是2个session