cookie/session
来源:互联网 发布:软件学院教务系统 编辑:程序博客网 时间:2024/06/07 05:28
产生背景:一次连接,从浏览器的一个request开始,到服务器返回response结束,多个页面需要传递参数,将要传递的数据存储到一个指定的位置,另外的页面去制定位置读取。
cookie是客户端,session是服务端,session依赖于cookie而存在,如果cookie被清除了,那么session也不会存在,cookie上传一个字符串,给session一个id,session请求时带着这个id来找cookie识别,cookie就见了这个id,就会对应的找出那个字符串,相当于一个令牌,如果cookie没了,session带着令牌不知道找谁,肯定是找不到的,岂不是很尴尬,就像超市门口的自动存货台。你自己相当于session,而管理员相当于cookie。
cookie本身由浏览器生成,通过Response将cookie写到浏览器上,下一次访问,浏览器根据不同的规则携带cookie过来
Cookie 客户端
- 一种会话技术,延长请求的生命周期,让我下一次的请求和上一次的请求有一些数据共享
- cookie通常在响应中设置,在请求中会自动携带我们网站的所有cookie
- cookie 存储在浏览器中,使用文件进行存储,存储格式键值对
- cookie不能直接存中文,不能跨浏览器使用,也不能跨域名
response.set_cookie(key,value,[max_age=None,exprise=None])
request.GET.get(key,defaultvalue)
Session 服务端
- 一种会话技术
- Session是服务端技术,但是依赖于cookie
- Session存储到数据库中,数据库中使用Base64编码
- Session支持过期,默认过期时间两周
- Session支持中文
cookie
1,定义视图函数
def index(request): # 得到返回的cookie值 username = request.COOKIES.get('username') data = {'username':username} return render(request,'app/index.html',context=data)def dologin(request): # 获取用户名 dd = request.POST.get('user') # 重定向 response = HttpResponseRedirect(reverse('rock:index')) # 在返回中设置cookie response.set_cookie('username',dd) return response
(1)存储,set
在dologin得到数据,用cookie获取到需要得到的用户名,username是key,dd是value,session也一样,都是字典类型,都需要key,不可缺少。
dd = request.POST.get(‘user’)
response.set_cookie(‘username’,dd)
用重定向返回index页面,
response = HttpResponseRedirect(reverse(‘rock:index’))
(2)获取,get
在index页面获取到数据,并传递给页面渲染出来
username = request.COOKIES.get(‘username’)
data = {‘username’:username}cookie设置有效时间,只要开着,永不过期,关闭浏览器之后按照我们设置的时间过期
response.set_cookie(‘username’,dd,max_age = 30)
实现功能是 一星期内免登陆, 根据复选框的值判断是否储存cookie,并设置过期时间
response.set_cookie(‘username’,dd,expires = timedelta(day=30))
2,在HTML页面设置
#index#数据渲染到页面<span>欢迎</span>{{ username }}<br><a href="{% url 'rock:login' %} ">登录</a><br><a href="">注销</a>
login
反向解析
{% csrf_token %}
用户名
session
跟cookie的方法一样,只是拿和取的方法跟cookie不一样
(1)存储
def dologinSession(request):
user = request.POST.get(‘user’)
# 字典结构,根据key拿value
request.session[‘username’] = user
# 重定向
return redirect(reverse(‘session:index.html’))(2)获取
在index里面获取
username = request.session.get(‘username’)
- Session,Cookie
- cookie & session
- Cookie & Session
- Session, Cookie
- Session、Cookie
- SESSION && COOKIE
- Cookie & Session
- SESSION && COOKIE
- Session.Cookie
- cookie session
- session cookie
- session cookie
- Cookie&Session
- cookie session
- Cookie&Session
- Cookie、Session
- cookie&session
- Cookie & Session
- Retrofit2+Rxjava2网络请求框架的封装
- springmvc 404 修改tomcat
- vim中选择匹配文本删除技巧
- apache+mod_wsgi+django
- 【笔记】位运算技巧
- cookie/session
- 福利活动之赠书
- 前端知识 | React-Router路由系统
- Android 实现属性动画平移,旋转,缩放,渐变 《H》
- DMediaPlayer
- error c4996: 'fopen' This function or variable may be unsafe如何解决
- 4. Median of Two Sorted Arrays
- Eureka 源码解析 —— Eureka-Server 集群同步
- 谷文杰博客迁移