Flask的会话技术-Cookie和Session介绍

Flask的会话技术-Cookie和Session介绍

一、 Cookie

客户端端的会话技术
cookie本身由浏览器保存,通过Response将cookie写到浏览器上,下一次访问,浏览器会根据不同的规则携带cookie过来

特点:
    - 客户端会话技术,浏览器的会话技术
    - 数据全都是存储在客户端中
    - 存储使用的键值对结构进行的存储
    - 特性
  		- 支持过期时间
 		- 默认会自动携带本网站的所有cookie
  		- 根据域名进行cookie存储
  		- 不能跨域名
  		- 不能跨浏览器
	- Cookie是通过服务器创建的Response来创建的
 
 设置cookie:
  	response.set_cookie(‘key’,value[,max_age=None,exprise=None)]
        max_age: 整数,指定cookie过期时间
        expries: 整数,指定过期时间,可以指定一个具体日期时间
        max_age和expries两个选一个指定
		# res.set_cookie('user',username,max_age=86400)
		# res.set_cookie('user', username, expires=datetime.datetime(2019,8,21,8,0,0))

 获取cookie:
  	request.cookies.get(’key’)
	# user = request.cookies.get('user')

 删除cookie
	response.delete_cookie(‘key’)
	# res.delete_cookie('user')

二、session

服务器端会话技术,依赖于cookie
特点:
    - 服务端的会话技术
    - 所有数据存储在服务器中
    - 默认存储在内存中
        - django是默认做了数据持久化(存在了数据库中)
    - 存储结构也是key-value形势,键值对
    - session 是离不开cookie的

【session】是一个全局变量,使用时导入即可
    
常用操作:
	设置session
  		session[‘key’] = ‘value’
        #session['user'] = username
        
  	获取session
  		session.get(key,default=None) 根据键获取会话的值
        #user = session.get('user')
        
  	删除session
  		session.pop(key) 删除某一值  
  		session.clear()   清除所有
        #session.pop('user')

cookie和session的区别:
cookie: 
    1. 在浏览器存储
    2. 安全性较低
    3. 可以减轻服务器压力
session:
	1. 在服务器端存储
    2. 安全性高
    3. 对服务器要求较高
	4. 依赖cookie

你可能感兴趣的:(学习日志)