获得徽章 1
- #青训营笔记创作活动#
2022/12/17 day 11
HTTPS会对HTTP的URL和Request Body都进行加密,因此直接在filter栏进行过滤http.host == "baidu.com"会一无所获。
HTTPS握手的过程中会先通过非对称机密去交换各种信息,其中就包括3个随机数,再通过这三个随机数去生成对称机密的会话秘钥,后续使用这个会话秘钥去进行对称加密通信。如果能获得这三个随机数就能解密HTTPS的加密数据包。
三个随机数,分别是客户端随机数(client random),服务端随机数(server random)以及pre_master_key。前两个,是明文,第三个是被服务器公钥加密过的,在客户端侧需要通过SSLKEYLOGFILE去导出。
通过设置SSLKEYLOGFILE环境变量,再让curl或chrome会请求HTTPS域名,会让它们在调用TLS库的同时导出对应的sslkey文件。这个文件里包含了三列,其中最重要的是第二列的client random信息以及第三列的pre_master_key。第二列client random用于定位,第三列pre_master_key用于解密。展开评论点赞 - #青训营笔记创作活动#
2022/12/15 day 9
TCP为了实现可靠性,引入了重传机制、流量控制、滑动窗口、拥塞控制、分段以及乱序重排机制。而UDP则没有实现,因此一般来说TCP比UDP快。
TCP是面向连接的协议,而UDP是无连接的协议。这里的"连接"其实是,操作系统内核在两端代码里维护的一套复杂状态机。
大部分项目,会在基于UDP的基础上,模仿TCP,实现不同程度的可靠性机制。比如王者农药用的KCP其实就在基于UDP在应用层里实现了一套重传机制。
对于UDP+重传的场景,如果要传超大数据包,并且没有实现分段机制的话,那数据就会在IP层分片,一旦丢包,那就需要重传整个超大数据包。而TCP则不需要考虑这个,内部会自动分段,丢包重传分段就行了。这种场景下,其实TCP更快。展开评论点赞 - #青训营笔记创作活动#
2022/12/14 day8
遇见bug百度没有结果怎么办
谷歌,必应,Stack Overflow,msdn
细化词汇,拆解段落
找文献
阅读相关文档的方法展开评论点赞 - #青训营笔记创作活动#
2022/12/13 day7
Kfka 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作。
Kafka 的复制机制既不是完全的同步复制,也不是单纯的异步复制。事实上, 同步复制要求所有能工作的 follower 副本都复制完,这条消息才会被确认为已成功提交,这种 复制方式极大地影响了性能。而在异步复制方式下,follower 副本异步地从 leader 副本中复制数据,数据只要被 leader 副本写入就被认为已经成功提交。
展开评论点赞 - #青训营笔记创作活动#
2022/12/12 day6
TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。
在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。
对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
websocket和socket几乎没有任何关系,只是叫法相似。
正因为各个浏览器都支持HTTP协议,所以websocket会先利用HTTP协议加上一些特殊的header头进行握手升级操作,升级成功后就跟HTTP没有任何关系了,之后就用websocket的数据格式进行收发数据。展开评论点赞 - #青训营笔记创作活动#
2022/12/11 day5
DHCP 获取计算机IP的一种方式
1. discover 全网广播,寻求空闲主机
2.offer 服务器通过广播方式发送空闲ip地址到用户机
3.request 发送请求,获取IP地址
4.ask 服务器同意请求
3.4步存在意义:防止多台服务器同时发送IP导致IP地址的浪费
DHCP选择udp而不是tcp
因为udp是无连接的,广播寻找地址udp只需发送给无意义的255.255.255.255
tcp需要确立连接发送消息,较为低效
三次无偿arp信息后才会使用展开评论点赞 - #青训营笔记创作活动#
2022/12/10 Day 4
客户端转服务端,最大的挑战不是学一门新语言,而是编程思维的改变;
“三刷”官方文档是我高效学习一门新的编程语言的制胜法宝:
1刷从头看到尾,扫清知识盲点,搞清楚概念;
2刷必须手敲,而且要写注释和总结;
3刷先只写注释,不看文档实现功能,遇到问题再和文档比较,加深理解。
在掌握Go基础之后,也可以通过“三刷”的方式掌握SQL,Redis,Linux,Nginx的基础知识点。展开评论点赞 - #青训营笔记创作活动#
2022/12/09 Day 3
单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表
页是InnoDB存储引擎管理数据库的最小磁盘单位,默认为16kb,除去信息位,可用约为1/2到15/16
页格式:文件头+页头+边界值+用户记录+空闲空间+页目录+文件结尾信息
行格式:行记录头信息+可变长度字段列表+null值列表+事务id和指针字段+实际数据
溢出页的存储:主要取决于页大小和行的总大小
InnoDB三层B+树数据存储量范围为一百二十多万条到将近五亿条展开评论点赞 - #青训营笔记创作活动#
2022/12/8 Day 2
idea好用的插件:
Key Promoter X 鼠标悬浮显示对应键盘快捷键
Lombok 通过配置实现Java代码增强
MyBatisX 支持Sql语句及xml和Mapper的跳转
Restful Fast Request 快速生成接口调试用例
PlantUML UML图绘制工具
SequenceDiagram 根据代码生成时序图
GsonFormatPlus 根据JSON字符串自动生成实体类
Json Parser JSON格式化插件
String Manipulation 专业处理字符串插件
MapStruct support 基于java注解的对象属性映射工具
Alibaba Java Coding Guidelines 阿里巴巴java开发手册配套插件
Alibaba Cloud Toolkit 阿里巴巴自动化部署
arthas idea 支持Arthas常用命令
Docker
Maven Helper 寻找Maven依赖冲突
Grep Console 分析控制台日志插件
Markdown
Translation
Statistic 统计代买行数和大小
Vue.js展开评论点赞 - #青训营笔记创作活动#
Day 1
限流:限制并发请求数量,拒绝一部分用户来保证一部分用户的体验
方式划分:
计数器限流法:对请求进行计数;在一段时间内进行count++; 计数周期和请求数量
没有很好处理单位时间的边界
滑动窗口法:按时间片进行划分,解决计数器无法对边界处理的缺陷
漏桶算法:限制了出水速率,不存在突发的流量;进来的请求先装进一个桶里,然后按固定的数量输出处理
令牌桶:令牌相当于许可,只有桶中有了才能够获得许可调用
固定速率,有最大值,低于阈值则会限流
漏桶和令牌桶都是流量整形和速率限制的算法,漏桶对流量直接操作,令牌桶对流量权限进行操作
作用范围划分:
分布式限流:限流服务原子化展开1点赞