Cookie和Session的区别
引用:https://blog.csdn.net/liyifan687/article/details/80077928
1.Cookie
Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。通俗讲,是访问某些网站后在本地存储的一些网站相关信息,下次访问时减少一些步骤。
Cookie的主要内容包括:名字,值,过期时间,路径和域。
2.Session
存在服务器的一种用来存放用户数据的类HashTable结构。
浏览器第一次发送请求时,服务器自动生成了一HashTable和一Session ID来唯一标识这个HashTable,并将其通过响应发送到浏览器。浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。
一般这个值会有个时间限制,超时后毁掉这个值,默认30分钟。
当用户在应用程序的 Web页间跳转时,存储在 Session 对象中的变量不会丢失而是在整个用户会话中一直存在下去。
区别
- 存储数据量方面:session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象
- cookie是存储在本地浏览器,而session存储在服务器。因Cookie在客户端所以可以编辑伪造,不是十分安全。
cookie和session结合使用
如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。
引用:https://www.cnblogs.com/xxtalhr/p/9053906.html
flask中使用cookie和session
一、cookies:
在Flask中操作cookie,是通过response对象来操作,可以在response返回之前,通过response.set_cookie来设置,这个方法有以下几个参数需要注意:
key:设置的cookie的key。
value:key对应的value。
max_age:改cookie的过期时间,如果不设置,则浏览器关闭后就会自动过期。
expires:过期时间,应该是一个datetime类型。
domain:该cookie在哪个域名中有效。一般设置子域名,比如cms.example.com。
path:该cookie在哪个路径下有效。
使用:
获取:request.cookies.get(key, '默认值')
设置:resp.set_cookie(key, value, max_age=整数)
删除:resp.delete_cookie(key)
二、session:
Flask中的session是通过from flask import session。