1.web 服务基础
1.1 http 模块
createServer
监听主机和端口号
localhost:本质上是一个域名,通常情况下会被解析成127.0.0.1
127.0.0.1:回环地址(Loop Back Address),表达的意思其实是我们主机自己发出去的包,直接被自己接收;
- 正常的数据库包经常 应用层 - 传输层 - 网络层 - 数据链路层 - 物理层 ;
- 而回环地址,是在网络层直接就被获取到了,是不会经常数据链路层和物理层的;
- 比如我们监听 127.0.0.1时,在同一个网段下的主机中,通过ip地址是不能访问的;
0.0.0.0:
- 监听
IPV4上所有的地址,再根据端口找到不同的应用程序; - 比如我们监听
0.0.0.0时,在同一个网段下的主机中,通过ip地址是可以访问的;
请求对象 request
- 将
JSON字符串格式转成对象类型,通过JSON.parse方法即可。 - 将
query参数解析出来,用const qs = require('querystring'); - 对接收的数据设置编码:对于文本型,
req.setEncoding('utf-8');对于视频、音频等类型,用binary POST请求的参数放在body里面;GET请求的参数通过URL拼接
headers属性
accept-encoding:告知服务器,客户端(如浏览器)支持的文件压缩格式,比如js文件可以使用gzip编码,对应 .gz文件;浏览器可以直接将 .gz 转化为 js 文件。在 webpack 中可配置,当 js 文件多大时,压缩为 gzip 文件。
响应对象response
Content-type
用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件
返回头部信息,主要有两种方式:
- res.setHeader:一次写入一个头部信息;
- res.writeHead:同时写入header和status;
res.setHeader("Content-Type", "text/plain;charset=utf8");
res.writeHead(200, {
"Content-Type": "text/html;charset=utf8"
});