曾经无意中在网上看到有人说啊,什么大型网站啊什么的后台使用的是java,前端使用的是php等动态脚本语言,这就是前后端分离。可是说说而已怎么做?还有这种定义就一定是正确的吗?我也不知道
如何分离,分离后有如何结合?
是形式上的分离吗,或者是本质上进行分离?若分离就会又有个前后端的分别,那么前后端的任务又分别是个啥?
分离
一般来说前端就是页面展示啊,调用个后端的功能啊,而后端就是具体业务逻辑的实现,那么问题来了,真正的web应用肯定会有一些跳转啊之类的吧?显然前端的职责肯定不会是单一的数据展示,还会涉及到控制器,也就是说前后端大体上应该是下面这要的:
- 前端:视图,控制器
- 后端:业务逻辑、模型、数据库
结合
那么现在如何进行前后端的连接?下面列举一些需要被了解的技术与概念:
- 通过RESTfull API+json 沟通前后端的连接
- Quercus、PHP/Java Bridge这两个可以在java项目对php进行支持,但是这样没有彻底分开,不是吗?
- soap等协议,这些协议本身是变成语言无关的,但是并不是所有语言都支持soap这个貌似也不太妥当。
其他好的连接
http://www.cnblogs.com/chenjg/p/6992062.htm (前后端分离)
https://segmentfault.com/a/1190000009329474?_ea=2038402 (前后端分离)
http://www.ruanyifeng.com/blog/2014/05/restful_api.html (RESTful api)