📅  最后修改于: 2023-12-03 14:40:12.924000             🧑  作者: Mango
Cookie
和 Session
是网站开发中常用的概念。这两个概念都是用来保存用户状态的,但它们实现的方式略有不同。
Cookie
可以在客户端保存用户的状态信息。当用户访问网站时,服务器可以发送一个 Cookie
到用户的浏览器,浏览器会保存这个 Cookie
。当用户再次访问网站时,浏览器会检查本地是否保存有网站的 Cookie
,如果有,就会发送给服务器,相当于告诉服务器,我是这个用户。服务器根据这个 Cookie
来识别用户,包括用户的身份、偏好等信息。
Cookie
通常用于保存用户登录信息,这样用户在登录之后,就可以在一段时间内免登录,提高用户的使用体验。
在浏览器中查看 Cookie
可以通过开发者工具->Application->Cookies 面板查看。
Session
也可以保存用户的状态信息,但与 Cookie
不同的是,Session
是将用户的状态信息存储在服务器上。当用户访问网站时,服务器会给这个用户创建一个 Session
,并将 Session
的 ID 发送给浏览器,浏览器通过 Cookie
把这个 ID 保存在本地。当用户再次访问网站时,浏览器会将这个 Session
的 ID 发送给服务器,服务器根据这个 ID 来识别用户。
Session
通常用于保存用户的临时状态信息,比如用户选择的商品、浏览记录等。和 Cookie
不同的是,Session
在用户关闭浏览器后会自动超时,这意味着 Session
中保存的状态信息会被清除,用户下次访问网站时,会重新获取状态信息。
在服务器端设置 Session
中的信息可以通过各种编程语言和框架来实现。
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
resp = make_response('Hello, World!')
resp.set_cookie('username', 'flask')
return resp
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
username = request.cookies.get('username')
return 'Hello, {}!'.format(username)
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'your secret key' # 设置 Secret Key
@app.route('/')
def index():
session['username'] = 'flask'
return 'Hello, World!'
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'your secret key' # 设置 Secret Key
@app.route('/')
def index():
username = session.get('username')
return 'Hello, {}!'.format(username)