在线网页下载,汕头网站搜索优化,自己想申请一个公司,9.9网站怎么做cookie和session 以及Django中应用 cookie和session机制 cookie和session机制 cookie机制采用的是在客户端保持状态的方案。作用就是为了解决HTTP协议无状态的缺陷所做的努力。 session机制采用的是一种在客户端与服务器之间保持状态的解决方案。由于采用服务器端保持状态的方案…cookie和session 以及Django中应用 cookie和session机制 cookie和session机制 cookie机制采用的是在客户端保持状态的方案。作用就是为了解决HTTP协议无状态的缺陷所做的努力。 session机制采用的是一种在客户端与服务器之间保持状态的解决方案。由于采用服务器端保持状态的方案在客户端也需要保持一个标识 所以session机制可能需要借助于cookie机制来达到保存标识的目的。session还提供了方便管理全局变量的方式。 session 是针对每一个用户的变量的值保存在服务器上用一个sessionID来区分哪个用户的session cookie和session内容 cookie内容主要包括key, value, 过期时间路径和域。路径和域一起构成了cookie的作用范围。 cookie的使用是由浏览器按照一定的规则在后台自动发送给服务器的浏览器检查所有储存的cookie 如果某个cookie的作用范围大于等于将要请求的资源所在位置将cookie附在请求资源的HTTP请求头上发给服务器。 cookie的生命周期跟过期时间相关如果不设置过期时间成为回话cookie保存在内存中关闭浏览器窗口cookie消失。 如果设置过期时间浏览器会把cookie写入硬盘这些cookie仍然有效直到超过设定的过期时间。 存在硬盘上的cookie可以在同一个浏览器不同进程间共享比如两个Chrome窗口。存在内存的不同浏览器不同的处理方式。 session内容服务器使用类似python字典的 key value的形式存储的存储session方式很多数据库缓存文件加密cookie数据库加缓存。 Django中的cookie cookie中的一些参数 -- max_age1, cookie生效的时间单位是秒。 -- expires 具体的过期时间 -- path “/” 作用路径 写/代表所有的url都可以访问到cookie 可以指定url -- domain None None代表当前域名 指定哪个域名以及它下面的二级域名子域名可以访问这个cookie -- secure False Https安全相关 -- httponlyFalse 限制只能通过http传输 JS无法再传输中获取和修改 设置cookie以及获取cookie # 设置cookie# 普通设置方式response_obj.set_cookie(key, value,expirestime,path/)# 加盐 # 加盐需要在服务端进行解盐才能查看response_obj.set_signed_cookie(k,v,saltgaoxin) # 获取cookie
# 普通cookies request.COOKIES.get(key)
# 加盐cookies request.get_signed_cookie(k, saltgaoxin) cookie session 的工作原理 -- 1 当用户来访问服务器时服务端生成一个随机字符串。 -- 2 当用户登录成功后把 {sessionID随机字符串} 加到cookie里发送给浏览器用户。 -- 3 服务器以发送给客户端cookie中的随机字符串为键用户信息做值保存用户信息 Django中的session django中session中一些方法 注意 request.session[name] gaoxin 默认隐含了通过sessionID找到用户信息那一步删除也是如此。 # 获取设置删除session中数据# 获取request.session[key]request.session.get(key, None) # 不报错 设置一个默认值# 设置request.session[key] valuerequest.session.setdefault(key, value)# 存在则不设置# 删除del request.session[key]# 获取所有的键值键值对request.session.keys()request.session.values()request.session.items()request.session.iterkeys()request.session.itervalues()request.session.iteritems()# 用户session的随机字符串request.session.session_key# 清除数据库过期的sessionrequest.session.clear_expired()
# 检查用户session的随机字符串是否在数据库中request.session.exists(session_key)
# 清除当前用户的所有session数据request.session.delete(session_key)
# 设置session的过期时间request.session.set_expiry(value)
# 如果value是个整数 session会在这些秒后失效
# 如果是个datetime类型的 就会在这个时间后失效
# 如果value是0用户关闭浏览器session就会失效
# 如果value是Nonesession就会依赖全局session失效策略 session的配置文件 # 引擎 存储位置
SESSION_ENGINE django.contrib.session.backends.file SESSION_ENGINE django.contrib.session.backends.cached_db # 缓存文件路径
SESSION_FILE_PATH 文件路径# cookie保存在浏览器上的key 即 sessionID 随机字符串
SESSION_COOKIE_NAME gaoxin# cookie 保存的路径
SESSION_COOKIE_PATH /# cookie保存的域名
SESSION_COOKIE_DOMAIN None# 是否https传输cookie
SESSION_COOKIE_SECURE False# 是否只支持http传输
SESSION_COOKIE_HTTPONLY True# cookie失效日期为600000秒 默认1209600秒
SESSION_COOKIE_AGE 600000# 是否关闭浏览器使session过期
SESSION_EXPIRE_BROWSER_CLOSE False# 如果设置成True 会在每次请求服务器的时候会以新的请求时间向后延期过期时间
# 淘宝一直逛就不会登出 不刷新页面过段时间就自动登出
SESSION_SAVE_EVERY_REQUEST True Copyright ©2018 GGG_XXX 转载于:https://www.cnblogs.com/chongdongxiaoyu/p/9284679.html