前后端分离

本文介绍了前后端分离的概念、请求过程、优势及常见问题。前后端分离使得前端负责用户界面渲染,后端专注于数据处理。核心标准是看谁生成页面。分离带来包括职责明确、开发效率提升等优点,但也面临如HTTP无状态、跨域等问题。文章还深入探讨了token、JWT和CORS等关键技术在实现分离中的作用。
摘要由CSDN通过智能技术生成

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.十六进制结果(十六进制,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值