http各个版本学习总结笔记
http 1.0
1. 引入状态码 --- 处理 出错问题
2. 引入 请求头、响应头 -- 用于数据交互
3. 引入cache机制 -- 缓存的已经下载的东西
http 1.1 都做了那些改进?
1. 持久化链接 : tcp连接 - 传送数据(一次) - tcp断开 ==》 tcp连接 - 传送数据(多次) - tcp断开
新加Connection字段 :close 关闭持久化 (默认打开) ,最多6个持久化连接
2. 不成熟http管道化 : 以前会发生对头阻塞问题 == 》 尝试批量传输
3. 提供虚拟主机的支持: 实现多个域名公用一个IP
新加Host字段:用来表示当前的域名地址
4. 对动态生成的内容提供了完美支持: 本来是采用的Content-Length: 100 浏览器可以根据该值大小接收数据 ==》 为了适应动态 采用Chunk transfer 块级传输机制解决
服务器会将数据分割成若干个任意大小的数据块,每个数据块发送时会附上上个数据块的长度,最后使用一个零长度的块作为发送数据完成的标志
5. 客户端 Cookie、安全机制:Cookie 机制和安全机制
HTTP2:如何提升网络速度
1. 原因:
tcp的慢启动
同时开启多个tcp连接 会竞争固定带宽 (一些主要的 一些不重要的 都会加载 )
对头阻塞
2. 解决方案:
1. 多路复用: 每份数据都有id 服务器可以根据自己的喜好进行加载某个模块 浏览器将相同id拼接响应数据
1-1. 可以设置请求的优先级
1-2. 服务器推送 - - 提前将数据文件js css 推送至浏览器 等html请求后直接使用 提高首次渲染速度
1-3. 头部压缩 hpack 编码
1-3-1. 有一个静态字典表格 , 头部字段使用二进制数字展示 对应哪个就是哪个
如果没有,则需要自己建立动态表格详细点击查看
https://blog.csdn.net/whuslei/article/details/6667471
https://juejin.cn/post/6982856040245100552#heading-16
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理