静态HTML指:使用单纯的HTML或者结合CSS制作的包括图片、文字等的只供用户浏览但不包含任何脚本、不含有任何交互功能的网页。
动态的HTML指:网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能,动态页面可以人机互动,静态只能回服务器的数据库再回到页面
后端渲染(SSR、服务端渲染)
后端渲染HTML的情况下,浏览器会直接接收到经过服务器计算之后的呈现给用户的最终的HTML字符串,这里的计算就是服务器经过解析存放在服务器端的模板文件来完成的,在这种情况下,浏览器只进行了HTML的解析,以及通过操作系统提供的操纵显示器显示内容的系统调用在显示器上把HTML所代表的图像显示给用户。
前后端不分离,一般情况下前端只需要根据设计完成页面就可以,数据可以暂时使用静态数据,包括图片、文字等。页面写完就可以交给后端同事了,他们引入你写的样式,将页面和数据进行渲染再返回到浏览器!
前端渲染(SPA、单页面应用)
前端渲染就是指浏览器会从后端得到一些信息,这些信息或许是适用于题主所说的angularjs的模板文件,亦或是JSON等各种数据交换格式所包装的数据,甚至是直接的合法的HTML字符串。这些形式都不重要,重要的是,将这些信息组织排列形成最终可读的HTML字符串是由浏览器来完成的,在形成了HTML字符串之后,再进行显示。
题主所提到的几个技术,我认为模板这个词语并不能用来区分这些技术的本质,模板只是一种提供给程序来解析的一种语法,换句话说,模板是用于从数据(变量)到实际的视觉表现(HTML代码)这项工作的一种实现手段,而这种手段不论在前端还是后端都有应用。
以下为本人自己的想法:在性能上,我认为后端渲染最终会被前端渲染,因为后端渲染将所有的HTML生成集中在了一个服务器上,而前端渲染将这部分工作分发到各个终端上。另外,对于开发而言,这样能够避免后端开发人员过多的编写HTML代码,后端开发人员只需和前端开发事先商定好数据格式,后端就只需将数据生成,用数据交换格式包装,再发送出去就可以了,这样能够使开发人员之间的分工更加明确。