开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情
前言
为了拓宽视野,也是为了半年以后的毕业设计可以独立完成开发工作。现在决定学习一门后端语言,但是考虑到java内容太多,C++太难等因素,还是决定学习Node。由于Node以JavaScript为开发语言,所以更容易上手。找了很多教程,最后决定学习Udemy上面的一个教程(顺便学习英语了)。
前面通过一个简单的小例子,学习了Node的基本操作。接下来的课程需要讲解一些概念上的内容,虽然这些概念可能并不影响当前的使用,但是对于理解整个Node有很大的帮助。
这部分内容包括web如何工作、线程池、事件循环、事件驱动等相关知识,有些比较重要的单独分出文章,文章是一个初学者对node的理解,有理解有误的地方请各位大佬指正。
An Overview of How the Web Works
关于web的工作流程有一道经典的面试题——在浏览器输入一个url会发生什么。要解释好这个问题需要深厚的计算机网络储备。这里只列举一些重要的流程(毕竟我是个连网络是怎么连接的都没看完的小菜)。
在向浏览器输入一段URL后,首先要向DNS服务器请求解析这段URL成IP地址。我们先不关心DNS如何解析(虽然看过但还不能以自己的语言解释出来)。
接下来通过HTTP REQUEST向服务器发送请求,服务器通过HTTP RESPONSE返回请求的数据。在这个过程中TCP和IP起到作用。我们的网页大部分时候需要很多数据,比如说页面的数据、图片数据等等。所以需要发送多个请求。
Front-End vs. Back-End Web Development
前端和后端分别是什么,一定困惑过许多初学者。两者的细分方向有很多,但是下图可以体现最本质的内核。
Static vs Dynamic vs API
静态页面是没有后端的页面。虽然页面可以进行,点击等操作,但仍不能称作动态页面。
动态则是浏览器通过URL请求数据,后台通过解析的URL返回对应的页面,就像前面做的那个小例子,不同的URL可以返回不同的页面。
API是指后端定义某些API,前端通过这些API进行数据的操作,由后端进行增删改查并连接数据库,这种方式比较常见。