Cookie和Session

一. cookie

  • 指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地的数据(通常经过加密)
  • 复数形式Cookies
  • Cookie由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器
  • Cookie中的key/value可以由服务器端定义
  • Cookie基于域名安全,不同域名的Cookie是不能互相访问的
    -- 访问csdn.net时向浏览器写入Cookie信息,使用同一浏览器访问baidu.com时,无法访问到csdn写入的cookie信息(表示这句话不理解,等以后理解了再来补充)
    --当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器,所以在request中可以读取Cookie信息
#_*_coding:UTF-8_*_
  2 
  3 from flask import Flask, make_response, request
  4 
  5 app = Flask(__name__)
  6 
  7 #设置cookie值
  8 @app.route('/set_cookie')
  9 def set_cookie():
 10     response = make_response("set cookie")
 11     response.set_cookie("name","zhangsan")
 12     response.set_cookie("age","13",10)#10秒有效
 13 #获取cookie
 14 @app.route('/get_cookie')
 15 def get_cookie():
 16     #获取cookie,可以根据cookie的内容来推荐商品信息
 17 
 18     name = request.cookies.get('name')
 19     age = request.cookies.get('age')
 20     return "获取cookie,name is %s,age is %s"%(name,age)
 21 
 22 if __name__=='__main__':
 23     app.run(debug=True)

session的存储依赖于cookie,在cookie保持的session编号
Session编号的生成需要进行加密

二.Session

  • 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名,余额,等级等信息,所以可以使用session进行保存
  • 在服务器端进行状态保持的方案是Session
from flask import Flask,session

app = Flask(__name__)

#设置SECRET_KEY
app.config["SECRET_KEY"] = "fhdk^fk#djefkj&*&*&"

#设置session
@app.route('/set_session/')
def set_session(name):

    session["name"] = name
    session["age"] = "13"

    return "set session"

#获取session内容
@app.route('/get_session')
def get_session():

    name = session.get('name')
    age = session.get('age')

    return "name is %s, age is %s"%(name,age)

if __name__ == '__main__':
    app.run(debug=True)
image.png
image.png

你可能感兴趣的:(Cookie和Session)