Django项目总结:Response和Cookie

【HttpResponse】

-- 服务器返回给客户端的数据

-- HttpResponse由程序员自己创建

  -- 不使用模板,直接HttpResponse()

  -- 调用模板,进行渲染

    -- 1.先load模板,再渲染

    -- 2.直接使用render一步到位

    -- render(request,template_name[,context])

      -- request   请求体对象

      -- template_name  模板路径

      -- context  字典参数,用来填坑

-- MIME

  -- 作用:制定传输数据使用哪种形式打开

  -- 格式:大类型/小类型     

  -- image/png

  -- image/jpg

 

 

 

 

 

【HttpResponse 子类】

-- HttpResponseRedirect

  -- 响应重定向:可以实现服务器内部跳转

  -- 暂时重定向:302

  -- return HttpResponseRedict('/grade/2017')

  -- 使用的时候推荐使用反向解析

  -- 简写:redirect

-- JsonResponse

  -- 以 Json格式返回数据

  -- 重写了__init__,序列化Json数据,指定content_type 为application/json

  -- 返回Json数据的请求,通常用在异步请求上

  -- JsonResponse(dict)

  -- 也可以使用__init__(self,data)设置数据

  -- Content-type是application/json

  -- HttpResponsePermanentRedirect

    -- 重定向,永久性 -- 301

  -- HttpResponseBadRequest -- 400

  -- HttpResponseNotFound -- 404

  -- HttpResponseForbidden -- 403

  -- HttpResponseNotAllowed -- 405

  -- HttpResponseServerError -- 500

  -- Http404

    -- Exception

    -- raise 主动抛异常出来

 

 

-- Json

  -- JsonObject -- {  }  

    -- key - value

-- JsonArray -- [   ]

  -- 列表中可以是普通数据类型,也可以是JsonObject

-- JsonObject和JsonArray可以嵌套

-- 给移动端的 使用Json(JsonResponse)

-- 给 Ajax

  -- 前后端分离

  -- DRF 框架

-- Google Chrome使用Json插件

  -- JsonFomatter

  -- JsonView

 

【会话技术】

-- 出现场景

  -- 服务器如何识别客户端

  -- Http在Web开发中基本都是短连接

-- 请求生命周期

  -- 从Request开始

  -- 到Response结束

-- 种类

  -- Cookie

    -- 客户端会话技术

      -- 数据存储在客户端

    -- 键值对存储

    -- 支持过期时间

    -- 默认Cookie会自动携带,本网站所有Cookie

    -- Cookie不能跨域名,跨网站

    -- 通过HttpResponse 操作浏览器

    -- Cookie默认不支持中文

    -- 可以加盐(加密)

      -- 获取的时候需要解密

 

 

-- Session

  -- 服务端会话技术

  -- 数据存储在服务器中

  -- 默认Session存储在内存中

  -- Django中默认会把Session持久化到数据库中

  -- Django中Session的默认过期时间是14天

  -- 主键是字符串

  -- 数据是使用了数据安全

  -- 使用的base64(数据以 = 结尾)

  -- 在前部添加了一个混淆串

  -- Session依赖于Cookie

 

 

 

 

 

 

 

 

-- Token

  -- 服务端会话技术

  -- 自定义的Session

  -- 如果Web页面开发中,使用起来和Session基本一致

  -- 如果使用在移动端或客户端开发中,通常以Json形式传输,需要移动端自己存储Token,需要获取Token关联数据的时候,主动传递Token

 

-- Cookie和Session,Token对比

  -- Cookie使用更简洁,服务器压力更小,数据不是很安全

  -- Session服务器要维护Session,相对安全

  -- Token拥有Session的所有优点,自己维护略微麻烦,支持更多的终端

 

 

 

【用户登陆,用户信息存储在cookie,并跳转用户界面】

 

 

 

 

 

 

 

退出用户登陆

 

 

 

【session登陆和退出】

 

 

 

 

【Token学生注册登陆】

 

学生注册:

 

 

 

学生登陆:

 

 

 

 

【CSRF】

-- 防跨站攻击

-- 防止恶意注册,确保客户端是我们自己的客户端

-- 使用了cookie中csrftoken 进行验证,传输

-- 服务器发送给客户端,客户端将cookie获取过来,还要进行 编码转换 (数据安全)

-- 如何实现的

  -- 在我们 存在csrf_token 标签的页面中,响应会自动设置一个cookie,csrftoken

  -- 当我们提交的时候,会自动验证csrftoken

  -- 验证通过,正常执行以后流程,验证不通过,直接403

 

 

 

 

【算法】

-- 编码解码
  -- Base64
  -- urlencode
-- 摘要算法,指纹算法,杂凑算法
  -- MD5,SHA
    -- MD5 默认是128的二进制
    -- 32位的十六进制
    -- 32位的Unicode
  -- 单向不可逆的
  -- 不管输出多长,输出都是固定长度
  -- 只要输入有任意的变更,输出都会发生巨大的变化
-- 加密
  -- 对称加密
    -- 一把钥匙
    -- DES,AES
    -- 加密解密效率高
    -- 钥匙一旦丢失,所有数据就全玩完了
  -- 非对称加密
    -- 两把钥匙,成对的
    -- 公钥和私钥
    -- RSA,PGP
    -- 安全性最高
    -- 算法复杂,需要时间长
    -- 支付宝,微信都是RSA

 

posted @ 2020-07-17 22:34  颗粒成仓  阅读(458)  评论(0编辑  收藏  举报