浏览器的组成
- UI用户界面
- 网络请求部分
- JS引擎
- 渲染引擎(内核)
- 数据储存(cookie,localStorage,sessionStorage)
浏览器和服务器通信的过程
- 在浏览器地址栏中输入域名
- 浏览器向DNS服务器发送请求,获取域名对应ip地址
- 服务期使用ip地址向服务器发送请求
- 服务器接收请求,处理请求
- 服务器生成相应结果,返回给浏览器
- 浏览器接受到服务器的相应(HTML)
- 浏览器解析html,渲染
浏览器的渲染过程
- 根据html源码生成DOM树
- 根据DOM树和CSS规则组合生成渲染树
- layout(布局)确定渲染树中元素的位置,大小
- 浏览器根据渲染树绘制页面Painting
npm
- 安装 :node安装好,npm自己就安装好了
- 检测是否安装好 , 执行npm -v
安装方式
- 全局安装
当需要将包作为全局命令来使用的时候,一般都会做全局安装,将内容装到npm根目录:%appdata%/npm C:\Users\Ryan\AppData\Roaming\npm
1.将包安装到了这个目录中的node_modules文件夹中
2.在目录下创建一个全局命令
npm install 包名@版本号 -g
- 本地安装
当前项目需要用到的所有的资源,都使用本地安装
安装好的内容就在当前项目目录中的node_modules中
npm init -y
npm install 包名@版本号
npm 常用命令
install:安装包
uninstall:卸载包
version -v:查看版本
init:创建package.json文件
-S -D
本地安装包的时候,可以有两个选项
--save
缩写 -S
当安装包的时候,使用的是--save
或者-S
的时候,安装的包信息(名字和 版本)会被存储到package.json文件的depende'ncies中,这个是线上会用到的资源包,都放在json文件的dependencies中
--save-dev
缩写-D
当安装包的时候,使用的是--save-dev
或者-D
的时候,安装的包信息(名字和版本)会被储存到package.json文件中的devDependencies中
这个是在开发阶段会用到的资源包.都放在json文件的devDependencies中
将所依赖的包的信息保存到package.json中的目的:
提高代码分享的效率
request和response对象
request: 所有请求相关的内容,都封装在这个对象中
request.url: url中除去协议域名端口号锚点之外的所有的信息
request.method: 请求的方式
request.httpVersion: http协议版本
request.headers:请求头中的所有的内容
response:提供好多用来响应的api
response.write: 向浏览器发送数据的,发送的数据可以是字符串也可以是Buffer,可以调用多次
response.end:向浏览器发送数据并结束响应过程的,发送的数据可以是字符串也可以是Buffer,只能调用一次,每次请求,必须保证调用,否则请求会挂起
response.setHeader:设置响应头的一次只能设置一条,可以调用多次
response.writeHead:设置响应头的,一次可以设置多条,还可以设置状态码和状态信息,如果和setHeader一起用,那么setHeader必须在前面,内容如果有冲突则以writeHead为准,其他不冲突的就合并了
response.statusCode: 设置响应状态码 如果用了writeHead设置,那么这个就没有用了
response.statusMessage: 设置响应状态信息