cookie:
位于用户的计算机上,用来维护用户计算机中的信息,直到用户删除。比如我们在网页上登录某个软件时输入用户名及密码时如果保存为cookie,则每次我们访问的时候就不需要登录网站了。我们可以在浏览器上保存任何文本,而且我们还可以随时随地的去阻止它或者删除。我们同样也可以禁用或者编辑cookie,但是有一点需要注意不要使用cookie来存储一些隐私数据,以防隐私泄露。
session:
session称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求http地址时,将传递到web服务器上并与访问信息进行匹配, 当关闭网站时就表示会话已经结束,网站无法访问该信息了,所以它无法保存永久数据,我们无法访问以及禁用网站。
cookie和session总结
1.COOKIE的由来: 因为HTTP请求时没有状态的,每一次请求都是独立的,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 2.cookie就是保存在浏览器上的键值对 服务器控制着响应,在响应里可以让浏览器在本地保存键值对,下次请求再发送的时候就会自动携带这个cookie值。浏览器关闭,cookie就失效 3.cooie的应用:1.七天免登陆 2.记录用户的浏览器习惯 3.简单的投票规则 4.服务端: 1. 生成字符串 2. 随着响应将字符串回复给浏览器 3. 从浏览器发送的请求中拿到字符串 好处: 服务端不用存,减轻了服务器压力 坏处: 信息不安全 session:保存在服务端的键值对,必须依赖于cookie 在服务器端存在的形式 sadsjhsjkcehhw:{"is_login":1,"user":"jerd"} Django中session的执行存过程: 存session: request.session["is_login"]="1" 1.在服务端生成随机字符串 2.生成一个和上面随机字符串对应的大字典,用来保护疏忽数据 3.随机字符串当成cookie返回给浏览器 取session:ret=request.session.get("is_login") 1.从请求携带的cookie里面找到随机字符串 2.拿到的随机字符串去session中找对应的大字典 3.从大字典中根据key取值 session的优势: 1.比cookie能存的数据多 2.安全性好,数据存在服务端 坏处: 数据都保存在服务端,存储压力比较大