http和https区别
http协议:超文本专属协议,属于应用层协议,是万维网数据传输的基础。设置http协议的目的是为了提供一种发布和接收html页面的方法。
https协议:超文本传输安全协议,在http协议的基础上加上了ssl/tls来加密数据包,设计的目的是为了提供对网站服务器的安全认证,保证数据的隐私与安全。
http协议被用来在Web浏览器与网站服务器进行数据传递。http用明文进行传输消息,不提供数据加密,如果攻击者截取传输报文,就可以读出信息,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
区别:https申请ca证书需要费用。
http运行在TCP上进行明文传输,https运行在ssl之上,ssl运行在tcp之上进行加密传输。(对称加密和非对称加密)。http协议的URL由的端口80,https端口443。
浏览器输入URL到返回页面的全过程
1.dns域名解析
2.根据解析后的ip,建立tcp连接
3.向IP地址,发送HTTP请求;
4.服务器处理请求
5.返回响应结果;
6.关闭tcp连接
7.浏览器解析html
8.浏览器布局渲染
dns域名解析的全过程
域名的级别 www.baidu.com.
.代表根域名,
.com这种是顶级域名,也叫一级域名,
baidu.com这种叫二级域名,
www.baidu.com这种叫三级域名,
依次类推
为什么innodb为什么建主键?为什么用整形自增主键?
1.如果不建立,mysql会找一个唯一的来自动建立主键(自动维护),用这个uid隐藏列,放在b+树。提升性能的角度,可以自建主键。
2.1<2?a 3.自增?mysql底层不是仅仅能用b+树,还有一种数据结构hash索引。但是hash索引几乎不用。。hash常量查找效率不是更高吗?hash冲突一部门问题,还有hash不支持范围查找,这是最主要的问题。hash不支持范围查找,工作量很多,范围查找必须要考虑。
b+树可以支持范围查找,除了把data放在叶子节点处外,b树叶子结点无关而b+树叶子结点之间有相邻接点磁盘地址(双向指针),查找一个范围!!走索引,先定位,可以进行范围查找,效率很高。b树范围查找定位每次都得从根部出发。
为什么自增,永远在叶子节点处增加,而不用分裂。(能不用uid就别用,最少用)
联合索引的底层数据结构长什么样子?b+树
innodb如何支持范围查找走索引的
聚簇索引,索引页+数据页。能走索引就从上到下,不能的话就全表扫描。
为什么利用最左前缀原则才能利用到索引
索引顺序跟条件可以匹配得到,基于索引上的条件进行过滤
范围查找导致索引失效原理分析
全表扫描更快的话,否则回表很多时间更长
覆盖索引底层原理
索引扫描底层原理
除了主键索引,bcd索引也存了
order by导致索引失效
MySQL数据类型转换有什么需要注意的
计算机网络
什么时候选择TCP/UDP
HTTPS的连接过程
7层模型和4层模型,每一层有哪些常见协议?
路由器/交换机是哪一层
网络层用来干嘛?传输层用来干嘛?
HTTP可以使用UDP吗
HTTPS怎么确认收到的包就是服务器发来的
确定发送窗口的大小,如何最大利用带宽,假设延迟100ms,发送端10Mb/s,接收端100Mb/s
数据库
事务的四大特性
四种隔离级别
什么是幻读
InnoDB 怎么防止幻读
B+树原理,为什么使用B+而不是二叉平衡树
操作系统
用户态如何切换到内核态
进程间通信的方式,哪种最快
信号量怎么实现对共享资源的访问
语言
什么是Python生成器,迭代器;
什么是装饰器;
元组和list的区别;
Python中的dict底层怎么实现的
list的底层怎么实现的;
双等于和is有什么区别
算法
求x的y次方,想出比直接for循环更好的方案
求绝对众数
================