Cookie;浏览器(客户端)进行本地数据存储的本地机制,它是以键值对的形式来存储数据的,当客户端对服务器发起请求的时候,会自动的对浏览器中保存的cookie信息进行解析解读,方便浏览器来辨别用户身份,识别用户记录等一系列操作的本地数据存储方式。
http协议本身对于每一次请求都是无状态的,比如说你在百度贴吧首页进行登录账号,对于http协议来说当访问贴吧里面的内容时,是不会记录你在首页的登录状态,服务器也不会标记每一次请求之间的联系,使用cookie就可以解决http协议无法标识老用户状态的弊端。
cookie也可以用于安全验证,有一些服务器会将一些重要的字段以加密的形式返回到浏览器的cookie中,用于登录的时候,也就是说登录的时候必须携带这个加密后的数据,否则,只有用户名和密码也是无法登录成功的。
用户在浏览器端进行账号密码登录之后,后台服务器就会验证账号,密码的正确性,然后返回一些字段给浏览器,服务器通过set-cookie字段来向浏览器(客户端)返回cookie信息。
当用户在浏览器中进行第二次登录的时候,浏览器会将这些cookie信息都添加到请求头中,发送给服务器
服务器会从客户端上传的cookie字段中读取cookie信息,从而识别用户是否属于登陆了状态,如果已经登录则返回相关页面,否则重定向到登录页面进行登录
session:是服务器端用于存储数据的一种机制,主要用于保存一些重要的数据,比如用户名,密码,在服务器,用户名和密码对应的有sessionID,这个字段的数据是有用户名,密码,登录时间等各种用户信息整体生成的一个随机字符串。等用户第一次访问网站,并登录成功的时候,服务器会将sessionID的值返回给浏览器并保存在cookie当中。下次访问的时候,服务器就可以直接通过读取cookie中的session来标识是哪一个用户来进行访问的,session是基于cookie来实现的。
http协议本事对于每一次请求都是无状态的,比如:使用淘宝进行购物的时候,由于http是无状态的,无法知道点击购物车的时候是哪一个用户将物品添加至购物车的,但是使用session就可以解决这个问题,一个用户对应一个sessionID,当用户点击添加购物车的时候,就会根据sessionID来识别是哪一个用户添加的购物车,这样就可以将对应的物品添加到对应的用户购物车里面使用session就可以解决http协议无法标记用户状态的弊端
cookie是在浏览器端进行数据存储,session是存放在服务端
cookie是用来保存用户名,密码等常用信息,session是用来跟踪会话的
session的安全性比cookie高