设为首页收藏本站

搜索
查看: 921|回复: 10

前后端分离有什么意义?

 关闭 [复制链接]
回帖奖励 40 金钱 回复本帖可获得 5 金钱奖励! 每人限 1 次
抢楼 抢楼 查看抢中楼层 本帖为抢楼帖,欢迎抢楼!  截止楼层:100  奖励楼层: 1,4,6,10,5 

11

主题

17

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
发表于 2016-10-20 15:04:49 | 显示全部楼层 |阅读模式
现在很多人都提出前后端分离,但是什么是前后端分离,这么做有什么意义?

2

主题

13

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2016-10-20 15:24:10 | 显示全部楼层

回帖奖励 +5 金钱

1.使前端更加专注于前端的开发,后端更专注于后端开发
2.使后端更加接口化,app和web都只要调取一个接口即可,不需要再二次开发
3.使分组结构更加清晰,前端(web和app)只负责展示,后端只负责数据的处理
4.使后端更容易构架数据引擎系统,不再是简单地传输数据,如大数据引擎交互
5.方便于各组不同项目,相互交换信息,在开发较大项目时,便于将信息简单化
6.可以实现数据中转,比如C项目需要B项目地信息,B项目需要A项目的信息,如果已经接口化开发,则可以直接调取
7.集群通信更加灵活,接口开发,可以使分布式计算更加灵活,分片运算,使大数据集成更加迅速

总结:所以前后端分离只是接口化开发的结果而已,真正的目的是为了,让数据更加灵活和迅速去迎合未来的大数据趋势
就比如京东的接口化开发就已经轻松地满足了每天几十PB的数据处理量,而未来接口化开发的需求也将会越发明显
回复

使用道具 举报

4

主题

12

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
发表于 2016-10-20 16:24:39 | 显示全部楼层

回帖奖励 +5 金钱

爸爸baba 发表于 2016-10-20 15:24
1.使前端更加专注于前端的开发,后端更专注于后端开发
2.使后端更加接口化,app和web都只要调取一个接口即 ...

前后端分离怎么解决接口的安全!
回复

使用道具 举报

2

主题

13

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2016-10-20 17:20:45 | 显示全部楼层
本帖最后由 萧峰 于 2016-10-20 17:34 编辑
一叶知秋 发表于 2016-10-20 16:24
前后端分离怎么解决接口的安全!

带token参数,两边加密方式一致即可
PHP方案
发送方:
token = md5(md5(data("YmdHi"))."双方约定好的密码");
接收方
t1 = md5(md5(data("YmdHi",time()-60))."双方约定好的密码");
t2 = md5(md5(data("YmdHi"))."双方约定好的密码");
t3 = md5(md5(data("YmdHi",time()+60))."双方约定好的密码");

nodejs方案
var moment = require("moment");//这是插件需install
var crypto = require(‘crypto’);
发送方:
var md5 = crypto.createHash(‘md5’);
var token = md5.update(moment().format("YYYY-MM-DD HH:mm")).digest(‘base64’);
接收方
var t1 = md5.update(moment().add(1,'m').format("YYYY-MM-DD HH:mm")).digest(‘base64’);
var t2 = md5.update(moment().format("YYYY-MM-DD HH:mm")).digest(‘base64’);
var t3 = md5.update(moment().subtract(1,'m').format("YYYY-MM-DD HH:mm")).digest(‘base64’);


验证是否等于t1,t2,t3的其中一个,只要是其中一个即可访问
那么就算两台服务器时间有所不同或服务有所延迟,只要时间不超过2分钟时差,就可以实现安全保证
而现在服务都是使用时间同步,时差一般不会超过3毫秒

回复

使用道具 举报

4

主题

12

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
发表于 2016-10-20 17:30:55 | 显示全部楼层
萧峰 发表于 2016-10-20 17:20
带token参数,两边加密方式一致即可
如PHP方案
发送方:

存在被破解的情况,还有楼主写错单词了,不是data而是date。前端加密,厉害一点的人是可以看到加密的方法的!感觉你这种方式不安全!
回复

使用道具 举报

2

主题

13

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2016-10-20 17:40:18 | 显示全部楼层
一叶知秋 发表于 2016-10-20 17:30
存在被破解的情况,还有楼主写错单词了,不是data而是date。前端加密,厉害一点的人是可以看到加密的方法 ...

不,这不是前端发送,这是服务端交互
因为服务端交互一般才存在安全问题

前端交互不需要这样,
只要分为公共接口和用户接口就好了,不需要加密
公共接口是所有人都可以调取,
用户接口是只有登陆才能调取,
由于服务器可以限制,所以不存在前端加密的问题
单词写错,谢谢指正
回复

使用道具 举报

4

主题

12

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
发表于 2016-10-20 17:57:40 | 显示全部楼层
萧峰 发表于 2016-10-20 17:40
不,这不是前端发送,这是服务端交互
因为服务端交互一般才存在安全问题

公共接口容易被黑客利用,循环请求这些公共的接口,这样会使得服务器产生不必要的负担,甚至崩溃!
回复

使用道具 举报

2

主题

13

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2016-10-21 17:08:13 | 显示全部楼层
一叶知秋 发表于 2016-10-20 17:57
公共接口容易被黑客利用,循环请求这些公共的接口,这样会使得服务器产生不必要的负担,甚至崩溃! ...

http://open.taobao.com/docs/api_ ... 7386653.1.22.bKQY59
如果接口这么容易被黑,那淘宝可以不用做了,兄弟
回复

使用道具 举报

4

主题

12

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
发表于 2016-10-21 17:22:46 | 显示全部楼层
哥哥gege 发表于 2016-10-21 17:08
http://open.taobao.com/docs/api_list.htm?spm=a219a.7386653.1.22.bKQY59
如果接口这么容易被黑,那淘 ...

这些都是后端请求,后端请求只有开发人员可以看到加密字符串,前端的请求是ajax请求,这种请求是所有人都能看到加密的字符串。
回复

使用道具 举报

11

主题

17

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
 楼主| 发表于 2016-10-21 17:25:40 | 显示全部楼层
一叶知秋 发表于 2016-10-21 17:22
这些都是后端请求,后端请求只有开发人员可以看到加密字符串,前端的请求是ajax请求,这种请求是所有人都 ...

这个问题可以使用session,将加密字符串保存到session,直接通过session传给前端,再由前端返回!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| 小黑屋| 完美起航-论坛     

完美起航-论坛中心。

Copyright © 2001-2013 Okgoes.   All Rights Reserved.

Powered by 完美起航 X3.2( 赣ICP备15002760号 )

快速回复 返回顶部 返回列表