HTTP

前言 超文本传输协议(HyperText Transfer Protocol,HTTP)是一种应用层协议,经历了三个比较重要的版本,http/1.0,http/1.1,http/2.0 三个常用版本 除此之外,还加入了一个http/3.0版本 | HTTP 1.0 | HTTP 1.1 | HTTP

虚拟内存技术

前言 本文的虚拟内存,需要区别于Windows上的虚拟内存,Windows上的虚拟内存应该对应于Linux上的交换内存,是一种把磁盘当内存使用的技术。 本文的虚拟内存,是一种内存管理技术。区别于嵌入式中的应用程序,直接运行在物理内存上。操作系统(如Linux)的应用程序,是直接运行在虚拟内存上,而由

HTTPS

使用RSA TLS一次握手:Client Hello,发送TLS版本,客户端随机数,密码套件(密钥交换算法_签名算法_WITH_对称加密算法_摘要算法组成) TLS二次握手: Server Hello:确认TLS版本,服务器随机数,选择的密码套件,如TLS_RSA_WITH_AES_128_GCM_

其他应用层协议

RPC 远程过程调用协议(Remote Procedure Call, RPC)并不是一个协议,而是一种调用方式,比如ONC RPC/Sun RPC, DCE/RPC, MS RPC, ONC RPC, gRPC等等 RPC重点解决三个问题:表示数据(序列化反序列化等),传递数据(传输协议),确定方

IP

IPv4 IPv4是由32位正整数组成,c++中可以使用uint32_t来存储,常常使用字符串来表示xxx.xxx.xxx.xxx,每一个xxx可以为0-255。 CIDR IPv4本来分为A,B,C,D,E五类地址(x表示二进制位,X表示十进制位) A:0xxxxxxx.XXX.XXX.XXX B

TCP-UDP

传输层协议 传输层协议主要包括TCP/UDP两个协议,TCP是面向连接,可靠传输的;UDP是面向无连接,不可靠传输的。当然,现在也有一些协议是建立在UDP上面向可靠传输的,也可以把他们归纳到传输层协议中,比如KCP(可以使用UDP作为底层),QUIC等等。但是,传输层协议主要有TCP和UDP两种。

索引

索引类别 按照数据结构分类:B+树索引,哈希索引,Full-text索引 按照物理存储分类:聚簇索引(主键索引,数据存储在叶节点),二级索引(辅助索引,叶节点只存储主键) 按照字段特性分类:主键索引(对主键进行索引,只有一个),唯一索引(索引的列值不能重复,不是说只能有一个索引),普通索引,前缀索引

事务

事务特性 原子性:要么全完成,要么全不完成 一致性:事务前后,数据满足完整性约束 隔离性:多个并发事务之间不干扰 持久性:事务结束后,对数据修改是持久的 MyISAM是没有事务的,InnoDB才有事务,其通过如下方式保证: 持久性:redo log 原子性:undo log 隔离性:MVCC 一致性

MySQL 锁类别 全局锁 flush tables with read lock; unlock tables; // 解锁 这样表就处于只读状态了,全库逻辑备份就需要用这个。 表级锁 表锁 lock tables `table_name1` read, `table_name2` read;