点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看
1、背景
Web服务器:一般指像Nginx,Apache这类的服务器,他们一般只能解析静态资源; 应用服务器:一般指像Tomcat,Jetty,Resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好;
2、未分离时代(各种耦合)
前端在开发过程中严重依赖后端,在后端没有完成的情况下,前端根本无法干活; 由于趋势问题,会JSP,懂velocity,freemarker等模板引擎的前端越来越少;
<body>
<%
request.setCharacterEncoding("utf-8")
String name=request.getParameter("username");
out.print(name);
%>
</body>
3、半分离时代
浏览器请求,CDN返回HTML页面; HTML中的JS代码以Ajax方式请求后台的Restful接口; 接口返回Json数据,页面解析Json数据,通过Dom操作渲染页面;
打开web,加载基本资源,如CSS,JS等; 发起一个Ajax请求再到服务端请求数据,同时展示loading; 得到json格式的数据后再根据逻辑选择模板渲染出DOM字符串; 将DOM字符串插入页面中web view渲染出DOM结构;
JS存在大量冗余,在业务复杂的情况下,页面的渲染部分的代码,非常复杂; 在Json返回的数据量比较大的情况下,渲染的十分缓慢,会出现页面卡顿的情况; SEO( Search Engine Optimization,即搜索引擎优化)非常不方便,由于搜索引擎的爬虫无法爬下JS异步渲染的数据,导致这样的页面,SEO会存在一定的问题; 资源消耗严重,在业务复杂的情况下,一个页面可能要发起多次HTTP请求才能将页面渲染完毕。可能有人不服,觉得PC端建立多次HTTP请求也没啥。那你考虑过移动端么,知道移动端建立一次HTTP请求需要消耗多少资源么?
4、分离时代
前端:负责View和Controller层。 后端:只负责Model层,业务/数据处理等。
浏览器请求服务器端的NodeJS; NodeJS再发起HTTP去请求JSP; JSP依然原样API输出JSON给NodeJS; NodeJS收到JSON后再渲染出HTML页面; NodeJS直接将HTML页面flush到浏览器;
5、总结
- END - 最近热文
• 86版西游记“红孩儿”成中科院博士!做CTO身价过亿! • 刘强东的代码水平到底有多牛? 网友:95年一个晚上赚5万! • 一些恶心的代码片段 • 一文看懂Java锁机制