1,前后端分离
1.1 前后端分离定义
前端
即客户端,负责渲染用户显示界面【如web的js动态渲染页面, 安卓, IOS,pc客户端等】
后端
即服务器端,负责接收http请求,处理数据
API
Application Programming Interface 是一些预先定义的函数,或指软件系统不同组成部分衔接的约定
1.2 前后端分离请求过程
前端通过http请求后端API
后端以json形式返回前端数据
前端生成用户显示界面【如html , ios , android】
1.3 判断前后端分离核心标准
谁生成显示页面
后端生成【前后端未分离】 ex: django -> HttpResponse(html)
前端生成【前后端分离】
1.4 前后端分离优点
各司其职
前端:视觉层面,兼容性,前端性能优化
后端:并发,可用性,性能
前端可以有效率用客户端处理数据,有效降低服务端压力
服务端错误不会直观的反馈到用户
后端灵活搭配各类前端 - 如安卓等
前端+后端可完全并行开发,加快开发效率
1.4 分离常见问题
问题 答案
如何解决http无状态? 采用token(详情见下方章节)
如果前端为JS,如何解决跨域问题? 采用CORS(详情见下方章节)
如何解决csrf问题 采用token
Single Page web Application 是否会影响Search Engine Optimization效果 会,前后端分离后,往往页面不存在静态文字【例如新闻的详细内容】
”老板,这个逻辑到底是让前端做还是后端做啊?“ 底线原则: 数据校验需要前后端都做
”老板,前端工作压力太大了啊“ 团队协作不能只是嘴上说说
动静分离和前后端分离是一个意思么? 动静分离指的是 css/js/img这类静态资源跟服务器拆开部署,典型方案-静态资源交由CDN厂商处理
1.5 实现方式
Django 后端只返回json
前端 -> ex: js向服务器发出ajax请求,获取数据,拿到数据后动态生成html
前端服务和后端服务 分开部署
2,token - 令牌
2.1 学前须知
2.1.1 base64 '防君子不防小人'
方法 作用 参数 返回值
b64encode 将输入的参数转化为base64规则的串 预加密的明文,类型为bytes;例:b‘chaogege’ base64对应编码的密文,类型为bytes;例:b'Z3VveGlhb25hbw=='
b64decode 将base64串 解密回 明文 base64密文,类型为bytes;例:b'Z3VveGlhb25hbw==' 参数对应的明文,类型为bytes;例:b'chaogege'
urlsafe_b64encode 作用同b64encode,但是会将 '+'替换成 '-',将'/'替换成'_' 同b64encode 同b64encode
urlsafe_b64decode 作用同b64decode 同b64decode 同b64decode
代码演示:

import base64
string_info = b'chaogege'
# base64加密
bs_result = base64.b64encode(string_info)
print(bs_result)
# bs_result: b'Y2hhb2dlZ2U='
# base64解密
ss_result = base64.b64decode(bs_result)
print(ss_result)
# ss_result: b'chaogege'
2.1.2 SHA-256
安全散列算法的一种(hash)
hash三大特点:
定长输出
不可逆
雪崩

from hashlib import sha256
s = sha256() # 1.创建sha256对象
s.update(b'chaogege') # 2.添加欲hash的内容,类型为 bytes
binary_result = s.digest() # 3.获取最终结果(纯二进制,用于计算)
hex_result = s.hexdigest() # 4.十六进制结果(十六进制,
本文介绍了前后端分离的概念、请求过程、优势及常见问题。前后端分离使得前端负责用户界面渲染,后端专注于数据处理。核心标准是看谁生成页面。分离带来包括职责明确、开发效率提升等优点,但也面临如HTTP无状态、跨域等问题。文章还深入探讨了token、JWT和CORS等关键技术在实现分离中的作用。
最低0.47元/天 解锁文章

2313

被折叠的 条评论
为什么被折叠?



