DAY13_会话技术-Cookie&Session&综合案例
发布人:shili8
发布时间:2025-03-14 12:24
阅读次数:0
**DAY13: 会话技术 - Cookie & Session & 综合案例**
在前面的章节中,我们已经学习了 HTTP 协议、GET 和 POST 请求、HTTP 头部等基本概念。今天,我们将重点讨论会话技术中的两个重要组成部分:Cookie 和 Session。
**1. Cookie**
Cookie 是一种小型文本文件,存储在客户端浏览器中。当服务器向客户端发送 HTTP 响应时,可以通过 `Set-Cookie` 头部添加 Cookie。Cookie 的主要作用是保存用户的状态信息,使得下一次请求可以直接使用这些信息。
**Cookie 的特点:**
* 存储在客户端浏览器中* 有大小限制(通常为4KB)
* 可以设置过期时间* 可以设置域名和路径**示例代码:**
from flask import Flask, request, sessionapp = Flask(__name__) app.secret_key = 'secret_key' @app.route('/set_cookie', methods=['POST']) def set_cookie(): # 设置 Cookie 的值 response = make_response('Cookie 设置成功!') response.set_cookie('username', 'JohnDoe') return response@app.route('/get_cookie', methods=['GET']) def get_cookie(): # 获取 Cookie 的值 username = request.cookies.get('username') print(username) # JohnDoe return 'Cookie 值获取成功!'
**2. Session**
Session 是一种更为复杂的会话技术,用于保存用户的状态信息。与 Cookie 相比,Session 有以下几个优势:
* 可以存储更多的数据(通常为4MB)
* 不受大小限制* 可以设置过期时间**示例代码:**
from flask import Flask, request, sessionapp = Flask(__name__) app.secret_key = 'secret_key' @app.route('/set_session', methods=['POST']) def set_session(): # 设置 Session 的值 session['username'] = 'JohnDoe' return 'Session 设置成功!' @app.route('/get_session', methods=['GET']) def get_session(): # 获取 Session 的值 username = session.get('username') print(username) # JohnDoe return 'Session 值获取成功!'
**综合案例**
现在,我们将结合 Cookie 和 Session 来实现一个综合案例。
假设我们有一个在线购物系统,需要保存用户的登录信息和购物车内容。我们可以使用 Cookie 来存储用户的登录信息,而使用 Session 来存储购物车内容。
**示例代码:**
from flask import Flask, request, sessionapp = Flask(__name__) app.secret_key = 'secret_key' # 设置 Cookie 的值@app.route('/login', methods=['POST']) def login(): username = request.form.get('username') password = request.form.get('password') # 验证登录信息 if username == 'JohnDoe' and password == '123456': response = make_response('登录成功!') response.set_cookie('username', username) return response# 获取 Cookie 的值@app.route('/get_cookie', methods=['GET']) def get_cookie(): username = request.cookies.get('username') print(username) # JohnDoe return 'Cookie 值获取成功!' # 设置 Session 的值@app.route('/add_to_cart', methods=['POST']) def add_to_cart(): product_id = request.form.get('product_id') quantity = request.form.get('quantity') session['cart'] = {'product_id': product_id, 'quantity': quantity} return '添加到购物车成功!' # 获取 Session 的值@app.route('/get_session', methods=['GET']) def get_session(): cart = session.get('cart') print(cart) # {'product_id': '123', 'quantity': '2'} return 'Session 值获取成功!'
通过以上案例,我们可以看到 Cookie 和 Session 的应用场景和优势。Cookie 适合用于保存用户的登录信息,而 Session 适合用于保存购物车内容等更为复杂的会话技术。
**总结**
本文主要讨论了 Cookie 和 Session 这两个重要的会话技术组成部分。通过案例分析,我们可以看到它们的应用场景和优势。Cookie 适合用于保存用户的登录信息,而 Session 适合用于保存购物车内容等更为复杂的会话技术。
**参考资料**
* [Flask 文档]( />* [HTTP 协议文档]( />* [Cookie 和 Session 的区别](