django-cookiesession

manage.py 命令行工具,用于Django进行不同方式交互的交互脚本

 

重定向:

从一个地址转到另外一个地址

redircet(路径)

 

在django中就是从一个视图,转到另外一个视图

 

当一个逻辑处理完后,不需要显示数据,而是转回到其他页面。这时使用重定向

 

无状态:

浏览器请求服务器是无状态的

 

无状态指一次用户请求的时候,服务器无法知道此用户之前做过什么,每一次的请求都是新的

 

因为浏览器与服务器是使用的socket套接字进行通信的,服务器将这次请求的结果返回给客户端之后会关闭当前套接字,而且服务器也会在处理完页面后销毁这个对象

 

 

cookie:

在浏览器端进行状态报出

 

弊端:不可以存储敏感信息

 

最典型的应用是判断注册用户是否已经登录网站

购物车

 

cookie是存储在浏览器的一端纯文本信息,不同域名的cookie是不能互相访问的

 

作用:用于浏览器和服务器间做状态保持用的

 

状态保持就是:当你访问一个网站的时候他可以知道你的一些信息,比如之前是否注册或者登陆过本网站,服务器通过判断就能得到这些信息

 

当服务器在响应数据给浏览器的时候,可以设置cookie返回给客户端,客户端在收到cookie后会将其保存到本地,在下次在访问该服务器时会将所有cookie信息提交给服务器

 

读取cookie:

request.COOKIES 返回的是一个字典

设置cookie:

response.set_cookie(key,value)

 

删除

response.delete_cookie(key)

 

session:

对于一些重要的敏感信息,不能存储在,浏览器中,而此时就要用到session,他是在服务器端就行状态保持,并且session依赖于cookie

 

django已经默认启用了session,已经默认在应用中安装了session应用 ,并且sesion数据已经默认的存储方式已选为数据库 。所以只要使用HttpRequest对象的session属性,就可以进行对写操作

 

 设置session的时候是通过HttoRequest对象的ression属性进行设置,设置完毕后会将其存入数据库中,响应给客户端的数据时,会带这sessionid给客户端,客户端吧sesionid写入cookie数据中记录这个cookeid

 

设置:

request.session[‘键’] = 值

 

读取

request.session.get(‘键’,默认值)

 

删除指定键的值

del request.session[‘键’]

 

清楚所有键的值

request.session.clear()

 

清楚session数据,在存储中删除所有键及对应的值,形成空表

request.sessipn.flush()

 

设置会话的超时时间

request.session.set_expity(value)

 

所有请求者的Session都会存储在服务器中,服务器如何区分请求者和Session数据的对应关系呢?

答案:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session

 

2. 存储Session时,键与Cookie中的`sessionid`相同,值是开发人员设置的键值对信息,进行了base64编码,过期时间由开发人员设置

posted on 2018-02-02 00:34  温柔笺言  阅读(156)  评论(0编辑  收藏  举报