logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

HTTPS(一):公钥、私钥、数字证书

1. 从一个加密通信的演化过程 看各种加密技术的由来及作用:1.1 传统HTTP的明文传输:  传统的HTTP方式在网络传输时,传输数据都是明文的,很容易出现数据被监听和窃取的情况:  另外,传输的数据还有可能被一些别有用心的人篡改,导致浏览器与服务器之间收发的内容不一致:  也就是说,使用HTTP明文传输至少存在着 数据被监听 以及 数据被篡改 这两大风险,因此HTTP是一种不安全的协议。1.2

MySQL查询性能优化:导致查询操作阻塞或变慢的可能原因及分析方法

一般情况下,对于“查询”的性能优化是针对于一些复杂的语句,并且需要返回大量的数据的场景。但有些情况下,“查一行”也会执行的特别慢,本文介绍可能出引发这种现象的几类,并总结出解决方法。1. 第一类:查询长时间不返回:1.1 第1种情况:等MDL锁:mysql> select * from t where id = 1;如果查询结果长时间不返回,一般碰到这种情况,大概率是表t被锁住了。接下来分析

HTTPS(二):TLS/SSL四次握手及wireshark抓包分析

HTTPS实现安全通信的原理就是在原有的HTTP层与TCP之间加入TLS/SSL协议层。不同的密钥交换算法,TLS的握手过程可能会有一些区别,本文以最简单的RSA非对称密钥交换算法为例,来说明TLS的握手过程。RSA握手过程:传统的TLS握手基本都是使用RSA算法来实现密钥交换的(非对称密钥加密算法在HTTPS中的唯一作用就是保证密钥交换过程的安全,在密钥交换完整之后,出于对性能的考虑通信双方就改

C++的throw抛出异常机制

关于C++的“抛出异常”机制:关键点:(1)throw是将抛出的表达式的值拷贝到“异常对象”中,catch则是根据异常对象进行参数匹配并处理异常;(2)throw可一次性跳出多层函数调用,直到最近一层的try语句,称为“栈展开”;(3)catch捕获时是将异常对象与catch参数的进行 类型比较,而不是值比较,所以只要类型相同,就可以进入catch中处理。(例如throw抛出一个int类型的值,c

C++使用protobuf实现序列化与反序列化

考虑设计一个协议?高效、简单、扩展、兼容解决拆包粘包:Protobuf的工作流程:1. 首先设计一个 .proto 文件,其中是开发人员设计的协议内容;2. 然后通过 protobuf 自带的 解析工具,将 .proto 文件进行解析,生成目标语言(c, cpp, java, py 等)的文件;3. 最后将生成的目标语言的文件引入项目。一个 .proto 文件编写示例://addrbooks.pr

#c++
epoll的底层实现原理

一、内核从网卡接收网络数据的处理过程:计算机由CPU、内存、网卡等设备硬件设备组成。计算机接收网络数据的处理过程是:网卡收到网线传来的数据,经过DMA传输、IO通路选择等处理后,将收到的数据写入内存;网卡将接收到的网络数据写入内存后,网卡向CPU发出一个中断信号,CPU能够捕获这个信号,然后执行相应的中断处理程序(对应IRQ请求的处理程序);此时的中断程序主要有两项功能:① 先将网络数据写入到对应

#linux
Linux系统命令与CPU、硬盘、内存、网络状态监控

1. Linux常用工具命令:Linux系统中需要关注的指标包括CPU、硬盘、内存、网络状态这四个模块。常用于“监控”的Linux系统命令包括:常用于“性能测试”的Linux系统命令包括:常用于“优化”的Linux系统命令包括:2. 基础命令和工具:2.1 uptime:机器启动时间+负载root@virtual-machine:/# uptime16:19:47 up 4 days,5:30,2

#linux#运维
C++STL常见面试题总结

2. 迭代器失效:《C++ Primer》9.3.6 容器操作可能使迭代器失效:向容器中 添加元素和从容器中 删除元素的操作 可能 会使指向容器元素的 指针、引用或迭代器 失效。一个失效的指针、引用或迭代器将不再表示任何元素。使用失效的指针、引用或迭代器是一种严重的程序设计错误,很可能引起与使用未初始化的指针一样的问题。2.1 向容器中 添加 元素导致迭代器失效的场景:如果添加操作的容器是vect

#c++#面试
Nginx配置文件编写(基础配置)

master - worker 模型configure – helpNginx配置的通用语法:手写一个Nginx的基础配置文件:my_conflinux云桌面中已经实现# 注意浏览器访问时要访问 8888 端口两个不同目录下的conf有啥区别?./nginx -c 参数什么意义?运行起来的命令是:./sbin/nginx -c my_conf/my_conf.conf源码搜索proxy_pass搜

#nginx
到底了