02 Web 应用模式
还记得我们在课程简介中提到过的"前后端分离技术"吗?其实,前后端分离是当下非常流行的一种 Web 开发模式,当前,有两种较为常用的 Web 开发模式:
- 前后端不分离模式
- 前后端分离模式
下面我们一起来认识一下这两种 Web 开发模式,通过比较,你应该就能知道为什么前后端分离的开发模式能够大行其道了。
1.前端与后端
在理解这两种 Web 应用模式之前,我们需要先明确前端与后端的概念。前端负责页面的渲染、数据的展示,而后端负责处理用于展示的数据。通俗地讲,前端就是用户可以看到的东西,比如在一个天气预报页面中,用户所能看到的天气信息就是前端展示的。每天的天气不同,展示的数据也不一样,那么这些数据从何而来?
答案是后端。我们之所以能看到实时更新的天气数据,是因为前后端配合作业实现的。后端在数据库查询相应时间的天气情况,查到数据后,进行相应的处理、包装,交由前端,前端获取数据后,根据提前设计好的样式,在相应位置填充后端发来的数据,这样一个天气预报页面就呈现在了用户眼前。
天气预报页面2. 前后端不分离模式
在前后端不分离的应用模式中,前端向 Web 服务器发送请求,Web 服务器根据请求内容,从数据库查询相应数据,将数据填充进模板渲染,渲染结果发回前端进行展示。
在过去,人们访问互联网几乎都是通过 PC 浏览器,因而仅需开发适应 PC 显示的单终端页面(只在一种设备上使用,其他设备不使用或很少使用的页面)即可。如果仅开发单终端的网页应用,前后端不分离模式是较为普遍的开发模式,针对同一个页面,后端提供资源填充入前端模板相应的位置并渲染,展示给客户即可,无需考虑不同终端需要不同的数据类型、不同的展示效果。在这种场景下,前后端不分离模式不仅开发速度快,还便于开发人员直接调试页面。
然而随着移动互联网的发展,Web 应用不再单单服务于 PC 端,同样的内容需要在不同的终端进行展示。而不同终端需要不同的渲染方式,如果仍然采用前后端不分离的应用模式,就需要后端为不同的前端渲染不同的页面进行适配,此时增加了许多冗余工作。
前后端不分离模式示意图3. 前后端分离模式
在前后端分离的 Web 应用中,后端此时扮演的角色只是提供前端所需的数据,不再负责样式的渲染。前端的展示样式,完全由前端负责,针对不同的终端,进行不同的渲染,这样不仅提高了用户体验,还在很大程度上降低了前后端的耦合度。由于不同终端所需的数据几乎一样,后端仅需专注于业务逻辑,为前端提供数据即可,不再需要适配不同终端,提供不同页面,这便大大降低了开发工作量。
在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。
前后端分离模式示意图4.前后端分离模式开发规范
前后端分离模式逐渐成为主流,随之而来的问题也很突出。通常,后端服务开发完成,开发人员会写一份后端接口调用的说明文档。不同公司、不同项目甚至不同开发人员都有各自的喜好,因而开发好的后端服务,也是千奇百怪,前端开发人员为了使用使用后端服务,必须逐个对照说明文档才能知道调用方式。小型项目还好说,大型项目接口繁杂,如果仍然采用千奇百怪的接口调用方式,就会无形中增加开发难度。那么是否有一套接口开发规范,是否有一个见名知意的接口调用方式呢?答案是有的,这就是 RESTful 规范。后续内容,我们将正式开始学习 RESTful。
5. 小结
本节带领大家了解了前端和后端的概念,并介绍了前后端不分离开发模式和前后端分离模式各自的应用场景和优缺点,并引出 RESTful 规范诞生的必要性。