这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
协议的发展
HTTP/0.9 (单行协议)
- 只有GET请求
- 响应只有HTML文档
HTTP/1.0 (构建可扩展性)
- 增加了Header
- 有了状态码
- 支持了多种文档类型
- .....
HTTP/1.1 (标准化协议)
- 链接复用
- 缓存
- 内容协商
- ....
传输通过一个完整的文本
此版本也是使用最久的一个版本,此版本也定义了http协议的规范
HTTP/2 (更优异的表现) 更快、更稳定、更简单
此版本更注重传输的速度和性能
- 二进制协议
- 压缩header
- 服务器推送
传输通过帧的形式
HTTP/3 (草案)
HTTPS
HTTPS就是在HTTP的基础上经过了一个数据加密的过程,使整个数据传输的过程安全性会更高。
经过TSL/SSL加密
加密:
- 对称加密:加密和解密都是使用同一个秘钥
- 非对称加密:加密和解密需要使用不同的秘钥: 公钥和私钥
状态码
常用的请求头
常用的响应头
缓存
详情请看:www.yuque.com/u32737667/g…
cookie
静态资源
第一次用户打开网站如果我们希望用户尽可能的更快的显式页面我们可以通过将静态资源部署到CDN上,CDN它是一个内容分发的网络,可以通过周期的策略能够让用户比较快的拿到资源的一种网络分发的方式。
另一个问题就是缓存确实可以让用户拿到资源的速度更快了,那我们如何确保用户拿到的资源够新,那么我们是通过修改文件名(比如文件名中的一段hash值发生改变了),从而使得缓存协议去重新申请最新的资源
鉴权
session + cookie的方法会相对较多
流程:
- 客户端向服务端发送请求并携带账号和密码
- 服务器对比账号和密码是否正确 如果正确 生成session保存在服务器并向客户端发送cookie
- 下次客户端会自动发送cookie 然后 服务端跟session进行对比 如果相等直接返回数据 无需验证
总结: HTTP方面的知识是计算机的基础知识,需要我们深入去掌握,从而可以更好的理解原理,不断进步