1、创建bin --->www 脚本文件 #!/usr/bin/env node 引入文件main.js(需要利用commander配置后面参数 npm link 全局链接)
2.在server.js中创建一个服务,main.js中开启一个服务
3.在依赖文件package.json文件中配置后面相关参数,
"babel": "babel src -d dist ",
"babel:watch": "babel src -d dist --watch"
开启一个窗口npm run babel:watch监控main.js中文件变换
4.安装babel相关模块 npm i babel/cli 解析core babel/core执行preset babel/preset转换成低级语法
npx babel src -d dist
5、chalk粉笔改变字体颜色
配置一堆的头
请求头:
accept-encoding:浏览器支持压缩格式
if-modified-since:对比缓存,上次修改时间
if-none-match:摘要缓存,和Etag配对使用
user-agent;判断什么设备,重定向
响应头:
content-Type:告诉浏览器响应内容的格式
常见:application/x-www-form-urlencoded 表单
multipart/form-data 二进制文件
application/json json数据
text/xml 纯文本
content-Encoding:告诉浏览器压缩文件格式
常见:gzip、deflate、br
cache-Control:强制缓存,在规定时间内不要再访问
Expires;强缓,比cache-Control优先级低,需要转换时间格式 toGMTString()
Last-Modified:相对缓存,和if-modified-since配对使用 ,最后修改时间
Etag:根据摘要做缓存,和if-none-match配对使用
Location:重定向
网络模型:
OSI七层网络模型:
物理层-->数据链路层-->网络层-->传输层-->会话层-->表示层-->应用层
对于前端来说主要是传输层和应用层
在传输层有tcp和udp
在应用层有http和ftp
TCP的三次握手和四次四次挥手
三次握手:
客户端向服务端发送请求
服务端收到请求向客户端发送请求
客户端确认收到请求
四次挥手:
甲方向乙方发送断开连接请求
乙方确认收到请求
乙方向甲方发送断开连接请求
甲方确认收到请求
因为乙方在收到断开连接请求时,可能还有数据没有传输完,不能立即断开连接,所有断开连接是四次
TCP与UDP的异同点:
tcp与udp都是传输层协议
相对于UDP来说,TCP面向连接,需要双方先建立连接,之后才开始数据传输,在传输过程中有超时重发,丢弃重复数据,所以TCP更加安全可靠,更加耗时
UDP只是把应用层数据传输到ip层,并不能保证到达目的地,没有建立连接,没有超时重发等机制,速度相对较快
请求与响应
请求:
请求头:非常多 accept-encoding if-none-match if-modified-since url-agent
请求行:请求方式 url GET /http 1.1 版本号
请求正文:浏览器向服务器请求的内容
响应:
响应头:非常多 content-type content-encoding cache-control Expires Etag last-modified location
响应行:HTTP 1.1 版本号 200 OK 状态码 描述
响应正文:响应的数据
### HTTP常用头:
content-type:响应的数据格式
content-encoding:响应的压缩格式
accept-encoding :请求支持的压缩格式
last-modified:最后修改时间
if-modified-since:上一次修改时间
Expires:强制缓存
cache-control:强制缓存
Etag:摘要
if-none-match:摘要
url-agent:判断什么设备,重定向
location:重定向
### http常用状态码
101:双向通信
200:成功态 204:没有响应体 206:断点续传
301:永久重定向 302:临时重定向 304:缓存
400:请求报文存在语法错误
401:没有权限 unauthorized 表示发送的请求需要有http认证的认证信息
403:登录了没有权限,请求的访问被服务器拒绝
404:找不到资源
405:请求方式不存在,不支持
408:请求超时
409:请求的的资源起冲突
500:服务器在在执行请求时发生错误
501:负载均衡,请求超出服务器能力范围,例如服务器不支持某个功能或某种方法
503:服务器处于超负载或维护状态,无法处理请求
505:服务器不支持请求的http版本
http请求方式
简单请求:
get:获取资源
post:新增资源
复杂请求:
put:上传文件
delete:删除资源
options:试探性请求,一般在跨域时出现,或复杂请求时
代理
正向代理:正向代理是位于客户端和服务器之间的代理服务器(中间服务器),为了得到原始服务器的信息,客户端指定目标服务器,代理服务器发送请求,并把得到的结果返回,真正的客户端对于服务器不可见,客户端需要设置ip和域名,适用于访问防火墙内,即翻墙
反向代理:客户端不需要任何设置,可以把代理服务器当做真正的服务器发送请求,代理服务器根据请求,判断走向何处,并转交给客户端,真正的服务端对于客户端不可见
https&http
http:超文本传输协议。位于应用层,基于TCP协议
特点:
无状态,不存储,没有记忆,客户端可以在短时间内重复请求一个网页多次,还是会响应
无连接:每次响应都要三次握手四次挥手
简单、灵活
通信使用明文,不确定双方身份,无法保证数据完整性
https:基于http,通过ssl和tls加密处理,验证对方身份,保证数据完整性
从输入一个网址到看到一个网页经历了什么
1、DNS域名解析,得到IP地址
2、建立连接,三次握手
3、浏览器向服务器发送http请求
4、浏览器收到请求后,做出http响应
5、浏览器收到响应后,进行解析与渲染,显示页面
6、断开连接,四次挥手