Cookie:储存在用户本地终端上的数据
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。
Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息
目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。有些页面将Cookie的时间设置为“0”或者是负数,这样在关闭浏览器的时候,就马上删除Cookie,不会记录用户信息,更加安全
Cookie的缺陷
1.数量有限制,一个浏览器创建的Cookie数量最多为300个,且不能超过4KB
2.安全性无法得到保障
Session:是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。
客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。
Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了
Session的缺陷
- 因为Session是保存在服务器上,安全性虽高,但会占用服务器资源,对服务器造成压力
Cookie和Session结合使用
Web开发至今,cookie和session的使用已经出现一些非常成熟的方案,一般有俩种存储方式
- 存储在服务端:通过cookie存储一个session_id,然后具体的数据保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再请求的时候会把该session_id带上来,服务器根据session_id在session库中获取用户的session数据,就能知道该用户是谁,以及之前保存的一些状态信息。这种专业术语叫server side session。
2.将session数据加密,然后存储在cookie中,这种专业术语叫client side session。Flask采用的就是这种方式