Bootstrap

Nodejs入门开发

前提

  • tcp:传输层的三次握手
  • http:应用层的访问资源协议
  • URL:格式是—协议://主机域名或者ip地址:port/资源路径

nodejs请求数据包

  • 请求行:请求方式POST、GET和http版本
  • 请求头:主机域名,操作系统和浏览器内核信息,浏览器能处理的文本和语言以及编码,cookie,connection
  • 空行:分割请求头和消息体
  • 请求体:具体内容

nodejs相应数据包

  • 状态行:http版本,状态码(200、302、404、500)
    • 1xx:指示信息—表示请求已接受,继续处理。
    • 2xx:成功—表示请求已被成功连接、理解、接受。
    • 3xx:重定向—要完成请求,必须进行更进一步的操作。
    • 4xx:客户端错误—请求由语法错误或者请求无法实现。
    • 5xx:服务器端错误—服务器未能实现合法的请求。(服务器代码出错)
  • 响应头:时间、服务器采用的版本比如apache,编码类型,超时时间设置等
  • 空行: 分割这个响应头和消息体
  • 消息体:相应的具体内容

nodejs是什么js

什么是js

  • javascript,解释性语言,不需要经过编译,必须要通过浏览器来执行

浏览器怎么执行

  • 通过浏览器的js引擎
    • 火狐的js引擎叫spidermonky
    • 谷歌的js引擎叫v8
    • 苹果浏览器(Safari)的解析引擎叫做nitro
  • 不同浏览器引擎不一样,但是都是ECMA标准。所以可以解析同一段js代码。

什么是node.js

  • 因为js必须通过浏览器运行,有人就希望js代码可以脱离浏览器在外部的环境来运行,这个人(ryan dahl)就把谷歌的v8引擎给脱离出来了,因为v8是所有引擎中效率最高的,封装好v8后生成了一个运行平台,就是node.js
  • 所以node.js是基于v8开发的一个js的运行平台,用于搭建相应速度快,易于扩展的网络应用
  • 为什么说响应快
    • Ryan Dahl这个人,早就封装好了一套库。我们直接基于它的库,就能开发我们对应的网络应用。
    • Node.js使用事件驱动,非阻塞I/O模型。
    • 开发出来的应用,轻量、高效,执行效率比较高。

node.js特点

  • 异步IO:完成一件事情后才能做第二件叫做同步,烧开水的时候同时去扫地叫做异步的操作。
  • 事件与回调:水烧开了之后,以事件的形式通知你,回来倒开水,就是在回调(处理烧完开水之后的结果)
  • 单线程:如果不想自己异步,可以在同步的时候叫多几个小伙伴帮忙,叫做多
;