肥皂起泡泡
先不讨论“前后分离”的问题;一家三口做饭,用电饭煲煮一锅米饭就行;供几千人吃饭的食堂煮米饭,就得用蒸饭车了。同样的道理,前端工作量小且比较看重视觉、交互的项目,比如企业官网、个人博客等,对于专职前端开发者(俗称“真前端”,有一定的视觉、交互设计功底的同时,也能胜任前端程序开发的工作),完全可以手工开发,比如手写HTML/CSS/JS、直接在HTML中调用CSS/JS库、通过浏览器进行项目调试等;而对于比较看重业务且前端工作量比较大的项目,比如淘宝、微博等,就得用上编译、构建工具(比如webpack)来进行前端开发了,前端开发者几乎没有机会去关注视觉、交互方面的细节,通常都是前端控件库、动效库提供什么就用什么(比如ant-design/bootstrap等),完成一系列配置工作与少量的开发工作之后,然后编译、构建、测试,到这里前端开发的工作就算告一段落了。(PS:这里的前端开发者通常指的是前端工程师或者前端程序员,与后端开发者在技术栈上几乎没有什么区别,俗称“假前端”)。再说说你的问题。首先,前后分离是大势所趋,现如今应用已相当广泛,凡是数据交互与视图渲染不在同一端进行的项目都能看作广义的“前后分离”。其次,你所说的不安全的问题,对比一下手机的指纹识别的功能,随便一根手指都可以去按压指纹识别模块,但是只有携带正确指纹信息的手指才能解锁;随便一个浏览器都能访问URL,也就是发起HTTP请求,但只有携带正确的权限认证信息的请求才会被验证通过;所以,你需要去了解下HTTP协议、会话管理、权限认证等相关知识,然后再来关注“前后分离”的问题。