从nodejs看服务端

本身对js语言比较感兴趣,自从知道nodejs不是什么新鲜技术了。就赶紧学了起来。

粗略扫视了那不堪入目的api之后,一顿艹从心头升腾。还是选择了从基础视频入手。

确实,node不适合刚入行并且没接触过服务端的人学习。你能想象手动搭建一个服务器是有多困难,尽管有大量io提供给你,但没有一系列的服务端,http协议等知识基础,那也是茫茫然。不过,如果node能够学通,那对了解服务端是有极大帮助的。

恶补完http之后。结合视频入手,初步了解了服务器究竟是个什么东东。

第一、为什么http协议如此重要?

因为几乎所有的web网站访问都是基于http或者https协议的。所谓协议,就是互相商量产生的约定。服务端跟客户端通信不能够乱搞,所以必须得约定规范起来。服务器也只是一个不能断电的应用程序。这个程序不断的接收跟发送请求都是通过http。简单来说,应该也仅此而已。至此,便有了几次握手,状态码,请求报文等等术语来了。都是这个鬼,搞出来的。然后就是吹牛逼的时候,大家听不懂,你就成了外行。

第二、服务端能做什么?

依我目前的理解,服务端其实功能很简单:1.接收请求  2.响应请求 3.做一些缓存,到数据库里面倒腾来倒腾去。(数据库也只是个存储软件)只是随着业务复杂度提升,以及一些自动化操作,大数据处理等等。才让这个原本很简单的“收发室”变成了一个“收发仓库”,甚至是一级代理,二级代理,海外代理。。。怎么感觉,一切都是为了数据服务,然后就都应运而生!?

第三、服务端渲染

其实我纠结“渲染”这个词,已经很久了。然后人云亦云的也说“渲染”吧。所谓的服务端渲染,就是把html(或者其他云云)文件,读出来然后将需要的数据拼接或者插入到页面文件中去。然后响应给客户端,客户端呈现完整页面。这种做法的好处是,不用客户端主动请求并且有利于seo。早期没有ajax的时候都是以这种方式来做。但是凡事都有两面性,这种东西给用户的体验不是最佳。因为服务端去获取数据再到拼接字符串再响应,再到客户端解析呈现页面。都是需要时间的。如果在网络环境很差的时候。那就会黑很久很久,如果服务端搞得不可靠,高并发下可能服务端就。。。

下面来看下,咋实现这服务端的渲染呢?首先客户端会发起一个请求,比如请求s.html,服务端会去读取这个文件。注意这里读取底层肯定是二进制。然后我们会转成字符串。所以其实我们服务器最后拿到的是个从二进制转换成字符串的文件,也就是说为了方便操作,我们把他变成了字符串。然后把我们从数据库或者其他地方来的数据拼接进去。服务器响应给到客户端,浏览器正常解析。呈现网页页面。以这个来推断,jsp跟php等服务端脚本实现服务端渲染的原理都大同小异,只是语法格式不同。

第四、客户端渲染

有强迫症,还是想说下客户端渲染。客户端渲染,其实本质跟服务端渲染差不多。但是在浏览器环境下,异步获取数据(不必须,定义一个dom字符串动态插入dom节点也算吧),需要js脚本语言做一系列dom操作,将数据插入。一个很有名,这几年很火的概念—spa(单页应用程序)就是通过动态获取数据以及大量的dom操作进行。所谓的动态拼接,就这玩意儿了。这种方式用户体感好,不需要去重新打开页面,但是又不利于搜索引擎抓取。唉。。凡事都有两面性嘛。


太晚了,要睡了。。。不好的地方,希望得到大牛指正。谢谢!

你可能感兴趣的:(从nodejs看服务端)