写写状态保持之cookie与session二人组
2018-07-29 21:36
281 查看
一.说说为啥要状态保持:
- 因为 http 是一种无状态协议,浏览器请求服务器是无状态的。
- 无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。
- 无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 连接,而且服务器也会在处理页面完毕之后销毁页面对象。
- 有时需要保持下来用户浏览的状态,比如用户是否登录过,浏览过哪些商品等
- 通过状态保持,可提高用户访问速度,降低服务器开销等
- 实现状态保持主要有两种方式:
在客户端存储信息使用
Cookie
- 在服务器端存储信息使用
Session
二.Cookie :
- Cookie:指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(通常经过加密)。 复数形式Cookies。
- Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
- Cookie的key/value可以由服务器端自己定义。
- 最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookie的功用。
提示:
- Cookie是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,因为电脑上的浏览器可能被其它人使用
当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器,所以在request中可以读取Cookie信息
三.在Flask中设置Cookie:
[code]from flask imoprt Flask,make_response @app.route('/cookie') def set_cookie(): resp = make_response('this is to set cookie') resp.set_cookie('username', 'james') return resp
获取Cookie:
[code]from flask import Flask,request #获取cookie @app.route('/request') def resp_cookie(): resp = request.cookies.get('username') return resp
四.Session:
- 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息
- 在服务器端进行状态保持的方案就是
Session
- Session依赖于Cookie
获取Session:
session:请求上下文对象,用于处理http请求中的一些数据内容
[code]@app.route('/index1') def index1(): session['username'] = 'kobe' return redirect(url_for('index')) @app.route('/') def index(): return session.get('username')
注:如有不当或者错误,请不吝赐教!!!
阅读更多
相关文章推荐
- Django中Cookie和Session状态保持系列之十一
- ASP.NET状态保持cookie与session
- flask基础七之状态保持cookie和session
- django和flask中保持状态的比较(session和cookie)
- session HTTP协议与状态保持 cookie
- Django中Cookie和Session状态保持
- jsp session 的状态保持, cookie的跨域访问(一)
- ios AFNetworking---cookie(session)保持登陆会话状态
- ASP.NET中的状态保持的方式(Cookie,Session,ViewState,Application)
- Python Flask详解状态保持、Cookie、Session
- asp.net状态保持viewstate,session,cookie,application
- flask状态保持(cookie,session)
- 状态保持中的Cookie与Session
- 解决vue跨域请求无法携带cookie,进而无法在服务器端设置session保持数据(状态)的问题
- 【状态保持】Cookie解释以及原理分析
- 利用Cookie和Session保持WEB客户端始终在线
- 状态管理---cookie、session
- laravel 实现不同域名cookie共享 一个域名下登录 另一个域名下保持登录状态
- ASP.NET 状态管理(cookie、Session)
- C#状态管理(Application、Session、Cookie)