这是我参与「第四届青训营 」笔记创作活动的第5天
01.初识
背景知识 : 什么是HTTP,其基本特点是
什么是HTTP
Hyper Text Transfer Protocol超文本传输协议
-
应用层协议、基于TCP协议
-
请求 相应
-
简单可扩展
-
无状态
02.协议分析
报文结构,发展历程
协议发展分析
协议分析 —— 报文
Method
- GET : 请求一个指定资源的表示形式,使用GET的请求应只被用于获取数据
- POST : 用于将实体提交到指定资源,通常导致在服务器上的状态变化或副作用
- PUT : 用请求有效载荷替换目标资源的所有当前表示
- DELETE : 删除指定资源
- HEAD : 请求一个与GET请求的响应相同的响应,但没有响应体
- CONNECT : 建立一个到由目标资源标识的服务器的隧道
- OPTIONS : 用于描述目标资源的通信选项
- TRACE : 沿着目标资源的路径执行一个消息环回测试
- PATCH : 用于对资源应用部分修改
一些请求的特点 :
安全的(safe) : 不会修修改服务器的数据的方法 如 :GET\HEAD\OPTIONS 幂等(idempotent) : 同样的请求执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的所有safe的方法都是idempotent的 如 : GET\HEAD\OPTIONS\PUT\DELETE
状态码
RESTful API : 一种API设计风格
(1) 每一个URL代表一种资源
(2) 客户端和服务器之间,传递这种资源的某种表现层
(3) 客户端通过HTTP method , 对服务器端资源进行操作,实现“表现层状态转化”
常用请求头
常用响应头
缓存
Cookie
协议分析 ———— 发展
HTTP2概述 : 更快、更稳定、更简单
-
帧
- HTTP/2 通信的最小单位
- 各帧包括帧头,至少包括当前帧所属数据流
- 二进制
-
消息
- 与逻辑请求或响应对应的完整的一系列帧
-
数据流
- 已建立的连接内的双向数据流,可以承载一条或多条消息
- 允许数据交错发送
-
其他
- 连接是永久的,单个来源只需一个连接
- 流控制机制 - 阻止发送方向接收方发送大量数据
- 允许服务器
HTTPS
经过 TSL/SSL 加密
- 对称加密 加密解密使用同一个密钥
- 非对称加密 加密解密使用两个不同的密钥 - 公钥&私钥
03.常见场景
静态资源,登陆
静态资源
CDN content delivery network
缓存 + CDN + 文件名hash
登录
不同域名提供登录API,跨域请求 OPTIONS+POST
代理服务器,负责分发请求
HTTP默认80端口
HTTPS 默认443端口
session+cookie | JSON web token
跨域 CORS
复杂请求 - 发起预请求
用户体验
-
网络优化
- 开启http/2
- 数据压缩
- 域名 - 域名收敛及域名发散
- 预解析
<link rel="dns-prefetch" href="#"></link> - 预连接
<link rel="preconnect" href="#"></link>