[关闭]
@EncyKe 2016-11-14T09:58:35.000000Z 字数 2921 阅读 2270

手册:Node.js

#手册 JavaScript



1. 简介

1.1. 推荐入门

1.2. 版本

1.3. 安装

  1. 安装 git bash
  2. 安装 node

1.4. 特点

2. HTTP 基础

2.1. 步骤

输入网址 或者 刷新 之后——

  1. 浏览器搜索自身 DNS 缓存;
    chrome://net-internals/#dns 可查看 chrome 自身的 DNS 缓存;
  2. 若 1 无缓存或缓存失效:搜索操作系统 DNS 缓存;
  3. 若 2 失败:读取本地 Host 文件;
  4. 若 3 失败:浏览器发起一个 DNS 的一个系统调用;
    1) 宽带运营商服务器查看自身缓存;
    2) 运营商服务器发起一个迭代 DNS 解析的请求;
    3) 运营商服务器把结果返回操作系统内核同时缓存起来;
    4) 操作系统内核把结果返回给浏览器;
    5) 浏览器获取域名对应的 ip 地址;
  5. 浏览器获取 ip 后,发起 HTTP「三次握手」;建立 TCP/IP 连接;
  6. 浏览器向服务器发送 HTTP 请求,如 GET 方法或 POST 方法;
  7. 服务器端接收请求,由路径参数进行后端处理后把数据(如 HTML 页面代码)返回给浏览器;
  8. 浏览器获取数据后进行解析、渲染,根据所需获取 JS、CSS 和图片等静态资源,这三类数据同样要经过以上 7 个步骤获得;
  9. 浏览器解析现有资源代码,渲染页面呈现给客户;

2.2. HTTP 参数

2.2.1. HTTP 组成

2.2.2. HTTP 请求方法

2.2.3. HTTP 状态码

2.3. HTTP 进阶

3. Node 基础

3.1. URL

3.1.1. 解析 URL

语法:

  1. url.parse('<url>', true, true)

3.1.2. 格式化 URL

语法:

  1. url.format({})

3.1.3. 合成 URL

语法:

  1. url.resolve('<主域名/>''<子路径名>')

3.2. QueryString

3.2.1. 序列化字符串

语法:

  1. querystring.stringify({json/String}, '键值对分隔符', '键值连接符')

示例:

  1. querystring.stringify({name: 'scott', course: ['jade', 'node'], from: ''})
  2. ==> name=scott&course=jade&course=node&from=
  3. querystring.stringify({name: 'scott', course: ['jade', 'node'], from: ''}, ', ', ':')
  4. ==> name:scott,course:jade,course:node,from:

3.2.2. 反序列化字符串

语法:

  1. querystring.parse()

3.2.3. 转义

语法:

  1. querystring.escape
  1. querystring.escape('现在已经是秋天了');
  2. ==> %E7%8E%B0%E5%9C%A8%E5%B7%B2%E7%BB%8F%E6%98%AF%E7%A7%8B%E5%A4%A9%E4%BA%86

3.2.4. 反转义

语法:

  1. querystring.unescape

3.3. 引入模块

3.3.1. 引入 HTTP

3.3.2. 引入 Apache ab

3.3.3. 引入 cheerio


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注