摘要: TLS的四次握手 由于HTTP是明文传输,因此需要加密,于是采用TLS的RSA握手去实现加密传输。所以流程变为先通过TCP的三次握手加上TLS的四次握手建立连接。 第一次握手 客户端发送client hello,内容包括TLS版本号,随机数,可用于加密的协议。 第二次握手 服务器接收到客户端的消息, 阅读全文
posted @ 2024-05-08 13:42 lgats324 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 字节对齐 字节对齐可以使得数据存储有适当的对齐,可以加速访问读取的速度。 例如想读取一个int的时候,int的大小是32位,因此如果起始位置是偶数则可以在一个周期内全部读取。但是如果起始位置为奇数,则需要两次读取进行高低拼凑才能获得32位数据。 总结:字节内存有助于提高内存访问速度,因为许多处理器都 阅读全文
posted @ 2024-04-30 00:21 lgats324 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Const 修饰变量 修饰变量后不能对变量进行修改 const int a = 10; a = 20; // 编译错误 修饰函数 可以让参数成为常量,防止修改参数 void func(const int a) { // 编译错误,不能修改a的值 a = 10; } 修饰函数返回值 并没有什么意义 修 阅读全文
posted @ 2024-03-26 15:42 lgats324 阅读(4) 评论(0) 推荐(0) 编辑
摘要: epoll是什么 epoll是一种I/O多路复用技术的一种,相比于poll及select有改进。 epoll的优点有以下: 没有最大并发连接的限制,可打开文件数量远大于$2^{11}$ epoll不在乎连接总数,只和当前「活跃」的连接数量相关,因此相比于poll和select,效率明显提升 epol 阅读全文
posted @ 2024-03-26 12:31 lgats324 阅读(10) 评论(0) 推荐(0) 编辑
摘要: this指针 this指针是一个const指针,指向当前对象,通过this可以访问当前对象的所有成员,无论是protect/private/public。 以下是一个示例: #include <iostream> class stu { public: void setA(int A); void 阅读全文
posted @ 2024-03-25 14:40 lgats324 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 为什么需要智能指针 对于普通指针,在程序结束前我们需要将每个指针都进行free,以免造成内存泄漏。但是手动释放指针是麻烦的,并且一旦漏掉就会造成内存泄漏。因此在C++11中引入智能指针避免此种情况的发生。 智能指针包括std::shared_ptr/std::unique_ptr/std::weak 阅读全文
posted @ 2024-03-25 13:11 lgats324 阅读(5) 评论(0) 推荐(0) 编辑