重生之都市之我对web开发模式的理解

前言

众所周知,http具有无状态性,无状态性就是客户端每次向服务器发送的请求都是独立的,服务器不会记得你是谁,就相当于你去商店买东西,老板只认为你是顾客,不会因为你是常客就对你熟悉起来。http的这种特性具有什么好处呢,那就是服务器不用保存客户的信息,减小负担。那么有什么办法让老板记得你是谁呢,这就要用到身份认证机制了。那么既然提到身份认证机制,不得不提web开发的俩种模式,一种是传统的基于服务器渲染的开发模式,一种是前后端的分离模式。

基于服务器渲染的传统开发模式

服务器渲染的概念:服务器直接向客户端发送html页面,通过字符串拼接,动态生成,不需要客户端通过ajax这样额外的技术请求页面数据。

那么它的优点是什么呢:

1.前端耗时少:因为前端页面由服务器动态生成内容,浏览器只要负责渲染页面即可。尤其是移动端,可以更省电.

2.更有利于SEO:因为服务器响应的是完整的页面内容,有利于爬虫更好的爬取数据。

缺点:

1.占用服务器资源,即服务器完成html页面的动态拼接,如果请求较多,会造成服务器的压力。

2.不利于前后端的分离,开发效率低。使用服务器渲染,则无法进行分工合作,尤其对于前端复杂的项目,不利于项目的高效开发。

3.前端只负责页面布局,被后端嘲笑切图仔。

4.采用session的身份认证机制,容易受xss跨站脚本攻击。

基于前后端分离的开发模式

前后端分离的开发模式,依赖于ajax的应用,换句话就是说,前端负责ajax的调用,后端提供ajax接口。

优点:

1.开发体验好:前端专注于ui的页面开发,后端专注api的开发,且前端的选择更多

2.用户体验好,ajax的广泛应用,可以然用户页面局部刷新获取数据。

3.减轻了服务器渲染的压力。因为最终的页面是在客户端生成的。

缺点:

1.不利于SEO:因为最终的页面是在客户端动态拼接完成,所以爬虫无法爬取信息(解决方法:利用前端的框架里的SSR可以很好的解决SEO问题),所以等于没有缺点。

开发模式的选择

目前实际开发中,选择开发模式不是一棒子打死的,是根据业务场景来选择的,例如企业级网站,大多数都是数据的展示,选择的是传统开发模式。用户交互性强的,例如后台管理系统,需要的是前后端分离的开发模式,也有单页面传统开发模式,其他页面前后端分离的开发模式。

Guess you like

Origin blog.csdn.net/weiyuyang250/article/details/121110674