
获得徽章 1
- #青训营笔记创作活动#
2023.1.20 打卡Day7
今日学习
- 文章开头通过抓包baidu的数据包,展示了用wireshark抓包的简单操作流程。
- 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用于解密。展开评论点赞 - #青训营笔记创作活动#
2023.1.18 打卡Day6
今日学习
笨方法跨越英文障碍的落地方法:
- 遇到的 Bug 百度没有结果怎么办
- 中文翻译文献模棱两可怎么办
- 寻找外文文献的发现过程是什么样的
- 如何解决英文文档中的复杂句子
- 如何结合文档学习语法展开评论点赞 - #青训营笔记创作活动#
2023.1.17 打卡Day5
今日学习
1. TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。
2. 在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。
3. 对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
4. websocket和socket几乎没有任何关系,只是叫法相似。
5. 正因为各个浏览器都支持HTTP协议,所以websocket会先利用HTTP协议加上一些特殊的header头进行握手升级操作,升级成功后就跟HTTP没有任何关系了,之后就用websocket的数据格式进行收发数据。展开评论点赞 - #青训营笔记创作活动#
2023.1.16 打卡day4
今日学习
1. 电脑插上网线,联网后会通过DHCP协议动态申请一个IP,同时获得子网掩码,路由器地址等信息。
2. DHCP分为四个阶段,分别是 Discover,Offer, Request和ACK。如果曾经连过这个网,机器会记录3. 你上次使用的IP,再次连接时优先使用原来的那个IP,因此只需要经历第三第四阶段。
4. DHCP是应用层协议,考虑到需要支持广播功能,底层使用的是UDP协议,而不是TCP协议。
5. DHCP分配下来的IP是有可能跟某台手动配置的IP地址重复的。
6. DHCP得到IP之后还会发3次无偿ARP通告,在确认没有冲突后开始使用这个IP。展开评论点赞 - #青训营笔记创作活动#
2023.1.15 打卡day3
今日学习
1、客户端转服务端,最大的挑战不是学一门新语言,而是编程思维的改变,即从“页面驱动设计”到“数据驱动设计”。
2、高效学习一门新的编程语言的制胜法宝——“三刷”官方文档:
1刷从头看到尾,扫清知识盲点,搞清楚概念;
2刷必须手敲,而且要写注释和总结;
3刷先只写注释,不看文档实现功能,遇到问题再和文档比较,加深理解。如果还有余力,就和我一样整理成文章,分享出来帮助大家学习,回馈社区。
3、go学习路线:go语言基础——》SQL,Redis,Linux,Nginx的基础知识点==》有能力开发Web项目——》“微服务”和“DDD”==》进阶
4、编程语言转型:对有基础的同学来说,学习一门新的语言,无外乎就是学习新语言的:数据类型、函数、运算符、错误处理等,再重点攻克一下语言的特点,基本2周时间就能去尝试写简单的demo,开发项目了
展开评论点赞 - #青训营笔记创作活动#
12月12日 打卡day2
学习并尝试了IDEA中各种各样插件的使用,涵盖了绝大部分应用场景,平时开发的时候基本上也够用了。不过IDEA插件虽然能增强它的功能,给我们提供一站式的开发体验,但是也不要安装过多,太多了容易卡。展开评论点赞 - #青训营笔记创作活动#
12月9日 打卡day1
今日学习
在电商等**高并发场景**下,我们经常会使用一些常用方法,去应对流量高峰,比如**限流、熔断、降级**
限流是限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求,而对于超过限制的流量,则通过**拒绝服务**的方式保证整体系统的可用性。根据限流作用范围,可以分为**单机限流和分布式限流**;根据限流方式,又分为**计数器、滑动窗口、漏桶限令牌桶限流**
常用的限流方法及其优缺点如下:
计数器:
优点:固定时间段计数,实现简单,适用不太精准的场景;
缺点:对边界没有很好处理,导致限流不能精准控制。
滑动窗口:
优点:将固定时间段分块,时间比“计数器”复杂,适用于稍微精准的场景;
缺点:实现稍微复杂,还是不能彻底解决“计数器”存在的边界问题。
漏桶:
优点:可以很好的控制消费频率;
缺点:实现稍微复杂,单位时间内,不能多消费,感觉不太灵活。
令牌桶:
优点:可以解决“漏桶”不能灵活消费的问题,又能避免过渡消费,强烈推荐;
缺点:实现稍微复杂,其它缺点没有想到。
Redis + Lua 分布式限流:
优点:支持分布式限流,有效保护下游依赖的服务资源;
缺点:依赖 Redis,对边界没有很好处理,导致限流不能精准控制。展开评论点赞