这是我参与「第四届青训营 」笔记创作活动的的第三天
1、初识http
- Hyper Text Transfer Protocol(超文本传输协议)
- 应用层协议(基于Tcp协议)
- 请求响应
- 简单可扩展
- 无状态
2、协议发展
3、协议分析-报文
get:请求一个指定资源的表示形式,使用GET请求只用于获取数据。
post:用于将实体内容提交到指定资源(通常导致服务器上的状态变化或副作用)
put:用请求有效载荷目标资源的所有当前表示
delete:删除指定资源
head:请求一个与get请求的响应相同的响应(无响应体)
connect:建立一个由目标资源标识的服务器的隧道
options:用于描述目标资源路径执行的一个信息环回测试
trace:沿目标资源路径执行一个消息环回测试
patch:用于资源应用部分修改
Method Path Version:
POST / HTTP/1.1
Host:localhost:8080
User-Agent:Mozilla/5.0 (Macintosh'…)…Firefox/51.0
……
注:(get和post方法的区别)
4、状态码
①200:客户端请求成功
②301:资源(网页等)被永久转移到其他URL
③302:临时跳转
④401:请求未经授权
⑤404:请求资源不存在(可能是URL输入错误)
⑥500:服务器内部发生不可预期的错误
⑧504:网关或者代理的服务器无法在规定的时间内获得想要的响应
5、浏览器
①AJAX之XHR
- UNSENT: 代理被创建,尚未调用open()方法
- OPENED: open()方法已经被调用
- HEADERS_RECEIVED: send()方法已经被调用,并且头部和状态已经可获得
- LOADING: 下载中;responseText属性已经包含部分数据
- DONE:下载操作已完成
②AJAX之Fetch
- XMLHTTPRequet的升级版、
- 使用Promise、
- 模块化设计,Response,Request,Header对象、
- 通过数据流处理对象,支持分块读取
6、node
- 默认模块、无需安装其他依赖
- 功能有限、不是十分友好
7、axios(常用请求库)
- 支持浏览器,nodejs环境
- 丰富的拦截器