HTTP实用指南|青训营笔记

62 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第三天

1、初识http

  • Hyper Text Transfer Protocol(超文本传输协议)
  • 应用层协议(基于Tcp协议)
  • 请求响应
  • 简单可扩展
  • 无状态

54362b0d1d292ebfe1ce53e5324e161.jpg

2、协议发展

22fc7b34f6ed3e7dadbb2f5665e8c87.jpg

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方法的区别)

2643bd669d42bd1746ee5981b483cc0.png

4、状态码

①200:客户端请求成功

②301:资源(网页等)被永久转移到其他URL

③302:临时跳转

④401:请求未经授权

⑤404:请求资源不存在(可能是URL输入错误)

⑥500:服务器内部发生不可预期的错误

⑧504:网关或者代理的服务器无法在规定的时间内获得想要的响应

5、浏览器

①AJAX之XHR

  • UNSENT: 代理被创建,尚未调用open()方法
  • OPENED: open()方法已经被调用
  • HEADERS_RECEIVED: send()方法已经被调用,并且头部和状态已经可获得
  • LOADING: 下载中;responseText属性已经包含部分数据
  • DONE:下载操作已完成

image.png

②AJAX之Fetch

  • XMLHTTPRequet的升级版、
  • 使用Promise、
  • 模块化设计,Response,Request,Header对象、
  • 通过数据流处理对象,支持分块读取

image.png

6、node

  • 默认模块、无需安装其他依赖
  • 功能有限、不是十分友好

image.png

7、axios(常用请求库)

  • 支持浏览器,nodejs环境
  • 丰富的拦截器

image.png

8、网络优化

cb5ce4d8c58d33843a80543b89aeb2b.jpg