最近也在想这块的话题,这里相当于把Web和浏览器、搜索引擎的交互都收拢到一套技术栈下,有了JAMStack的概念去做分工。此时后端角色专注于数据层面的逻辑的实现,前端可能就差不多是后台众多微服务之间的一小块的环节。
背后是二十多年来的一个历史变迁。Web本来只是HTML文档和URL构成的资料库,在需求的驱动下HTML文档主要就作为PHP等后端的一个渲染层,形成早期的Web App,用户状态全靠服务端的session来维护。
逐渐地文档的能力丰富起来,加上Ajax、Flash插件构建起了RIA生态,再后面HTML5进一步发展并逐步替代Flash流派,甚至可以支撑起更加复杂的GUI应用,慢慢地目光焦点就放在了以JS为中心的SPA上。
但其实Web的文档互联属性和App属性并不是太泾渭分明,通常会有个暧昧的状态,只注重Web亦或是只注重App都有些偏颇,所以服务端渲染方面也一起提上了日程,同时也支撑起了 Vercel 等等以JAMStack为中心的边缘计算一条龙服务。
这里就有点Web App也从PHP时代的重服务端,到SPA的重客户端,到现在俩者之间有了更丰富的融合关系的状态。对Web开发者而言就可以更专注在业务的实现上,而非搞一堆不同编程语言分散注意力了。