- 博客(25)
- 收藏
- 关注
原创 HTTPS 加密原理
有了这几道过程之后,我们在网上的通信就变得更加安全,隐私也被保护的比较安全,一般情况下的“黑客”就无法直接获取到私密数据。” 要是有能力入侵服务器,还不如直接到数据库盗走数据,入侵的一般动机就是“金钱”,有这本事的人也不会冒着这么大的风险挣钱,因为也不缺。但是由于不能所有的客户端都是用同样的密钥,就很容易造成密钥泄露,所以每个客户端都要使用不同的密钥,但是密钥又要通过网络传输,同样造成密钥泄露。然后通过自己的密钥对服务器的相应进行解密,得到客户端与服务端的通信对称加密的密钥。这就是“运营商劫持”。
2025-05-16 17:40:15
1002
原创 【计算机网络】HTTP 协议
HTTP 的体现在生活中随处可见,比如使用浏览器访问网站时,就是使用的 HTTP 来传输数据的,在早期,包括了登录网站的用户名、密码等都是经过 HTTP 明文传输,这样也就意味着会造成用户信息泄露,这就涉及了网络安全问题,这个话题以后再说。HTTP 的实现在 HTTP 3.0之前都是基于传输层的 TCP 实现的, HTTP 3.0 改为了基于 UDP 实现,但是现在市面上只要使用的是 HTTP 1.1 、HTTP 2.0。POST⽅法也是⼀种常⻅的⽅法.多⽤于提交⽤⼾输⼊的数据给服务器(例如登陆⻚⾯).
2025-05-12 21:15:47
1005
原创 网络原理——UDP
我们注意到, UDP 协议⾸部中有⼀个16位的最⼤⻓度. 也就是说⼀个 UDP 能传输的数据最大长度是 64K(包含 UDP ⾸部). 然⽽64K在当今的互联⽹环境下, 是⼀个⾮常⼩的数字. 如果我们需要传输的数据超过64K, 就需要在应⽤层⼿动的分包, 多次发送, 并在接收端⼿动拼装;⽤ UDP 传输100个字节的数据: • 如果发送端调⽤⼀次sendto, 发送100个字节, 那么接收端也必须调⽤对应的⼀次recvfrom, 接收100 个字节;端口号:是一个无符号的整数,范围在 0~65535。
2025-04-21 14:17:52
437
原创 多线程安全问题和解决方案
多个线程以非原子方式操作共享数据执行结果依赖于线程执行的时序一个线程对共享变量的修改可能不会立即对其他线程可见由于CPU缓存、指令重排序等优化导致编译器和处理器可能会对指令进行重排序优化导致程序执行顺序与代码顺序不一致。
2025-04-09 11:51:04
333
原创 一篇文章带你复习“ 线程池 ”
在日常的多线程编程中,我们频繁的创建和销毁线程就会加大系统资源的开销,所以我们可以提前创建一些线程,用的时候直接调用,就更加便捷。:每次创建线程都需要分配内存、初始化线程栈、注册线程信息等,销毁线程也需要释放资源。:无限制地创建线程可能导致内存耗尽(OOM)或CPU过度切换(上下文切换开销)。:线程池可以预先创建一定数量的线程,任务到达时可以直接执行,减少等待时间。:通过限制最大线程数,避免因线程过多导致系统崩溃。:减少线程创建和销毁的开销。:防止系统因线程过多而崩溃。
2025-04-06 02:01:24
712
原创 学习Java第七课 彻底理解类和对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人 们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要 开发人员告诉给计算机什么是洗衣机。
2024-12-16 09:28:36
977
1
原创 学习Java第四课 一篇文章看懂逻辑控制
三种循环都有着自己的用处,但是一定要了解好问题,选择合适的循环语句,do while循环当中的代码至少都要执行一次,所以有着独特的用法。
2024-11-27 15:16:45
1022
原创 学习Java第二课 数据类型和变量
在Java中数据类型分为两类:基本数据类型和引用数据类型。基本数据类型和C语言中的基本上是兼容的,在Java中有着对应的包装类,在往后的学习中会学到。
2024-11-14 10:00:00
799
原创 学习 JAVA第一课 你了解 JAVA 这门编程语言吗?
Java是一门面向对象编程的程序设计语言,它具有着令人赏心悦目的语法和易于理解的语义。因为Java是面向对象编程,在学习Java语言时最好学过一门面向过程编程的语言(如:C语言)。
2024-11-13 14:26:27
679
原创 C语言结构体,你真的了解吗?
结构体作为学习数据结构的三大基础之一,有着独特的特点,可以把不同类型的数据集合在一个自定义类型中,也就是结构体。在我学习结构体时,我总报着一个疑问,好像结构体也没啥优势,那我们现在了解一下结构体,到底有啥用。
2024-09-15 16:55:15
574
原创 C语言指针你真的理解吗?
指针实际上是一个变量,其存储的是另一个变量的地址,即内存位置。通过指针,我们可以间接访问和修改存储在该地址中的数据。例如,如果一个指针变量存储了另一个变量的地址,那么通过这个指针变量就可以访问或修改那个变量的值。地址:每个变量在内存中都有地址,这个地址指向变量存储的位置。指针变量:用于存储变量地址的变量。通过指针变量,程序可以访问或修改存储在该地址中的数据。取地址运算符(&) :用于获取一个变量的地址。解引用运算符( * ):用于访问指针所指向的地址上的数据。
2024-09-10 17:09:12
743
原创 简单理解一个项目工程——扫雷游戏
可能很多人和我一样,总感觉学习C语言后没有用武之地,只能完成一些固定的题目,总和自己想象中的编程不是一回事,今天就简单的实践一下,用C语言编写一个命令框游戏。此文章将会体现一个项目工程,需要分装多个源文件的好处,函数分装的便利,以及宏定义的好处。
2024-09-07 17:09:54
416
1
原创 字符函数和字符串函数
strcpy、strncpy 非常相似只有一个字母的差别,由上也可以看到其他函数,都比没加 n 之前多了一个 num 的变量,我们称这个为长度受限的字符函数,strcpy 称为长度不受限的字符函数。因为多了一个变量的限制,在使用的时候也比不受限的较为安全一点,所以在往后的编程过程中尽量使用受限函数。
2024-09-07 10:54:17
447
原创 学习C语言——第四课分支和循环(二)
C语言中的循环结构利用三种循环语句实现,分别是while、for、do---while三种循环用法不一样,但是都包含了三个要素:初始化,判断,调整。
2024-06-10 21:02:19
1718
1
原创 学习C语言——第一课_C语言常见概念
C语言是一种语言,类似于汉语、英语、俄语的一种语言,这些语言是人与人之间交流的语言,同理,C语言就是人与计算机交流的语言。创建新项目——空项目(项目命名最好有意义)——创建源文件(名称把.cpp改为.c后添加即可)——接下来就可以写程序代码运行:方法一:ctrl+F5/Fn+ctrl+F5(编译+链接+运行)方法二:调试——开始执行(不调试)在VS2022上写代码,我们是需要创建项⽬的,直接新建项⽬就可以了在项⽬中就可以添加源⽂件和头⽂件。
2024-05-28 12:38:09
1261
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人