-
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<b? 哪个效率更高。123效率更高。数据库用硬盘存储,节省ssd用整型也更好。
3.自增?mysql底层不是仅仅能用b+树,还有一种数据结构hash索引。但是hash索引几乎不用。。hash常量查找效率不是更高吗?hash冲突一部门问题,还有hash不支持范围查找,这是最主要的问题。hash不支持范围查找,工作量很多,范围查找必须要考虑。
b+树可以支持范围查找,除了把data放在叶子节点处外,b树叶子结点无关而b+树叶子结点之间有相邻接点磁盘地址(双向指针),查找一个范围!!走索引,先定位,可以进行范围查找,效率很高。b树范围查找定位每次都得从根部出发。
为什么自增,永远在叶子节点处增加,而不用分裂。(能不用uid就别用,最少用)
联合索引的底层数据结构长什么样子?b+树
-
innodb如何支持范围查找走索引的
聚簇索引,索引页+数据页。能走索引就从上到下,不能的话就全表扫描。 -
为什么利用最左前缀原则才能利用到索引
索引顺序跟条件可以匹配得到,基于索引上的条件进行过滤 -
范围查找导致索引失效原理分析
全表扫描更快的话,否则回表很多时间更长 -
覆盖索引底层原理
-
索引扫描底层原理
除了主键索引,bcd索引也存了 -
order by导致索引失效
-
MySQL数据类型转换有什么需要注意的
计算机网络
- 三次握手
- 握手时产生的序列号干什么用的
TCP协议工作在OSI的传输层,是一种可靠的面向连接的数据流协议,TCP之所以可靠,是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。 - 讲一下接收窗口
- TCP和UDP的本质区别
什么时候选择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循环更好的方案
求绝对众数
================
- 请详细介绍下TCP的三次握手机制,为什么要三次握手?
1.1 为什么要有握手?
tcp重要特性是可靠性,互相发的时候来证明发过去?通过序列号来确认。tcp是双工通信,就需要知道对方的序列号。序列号不能从0开始,所谓的随机序列号。如何获得对方序列号?就需要三次握手。
1.2 为什么是三次?
三次不是四次?为什么 ?关连接时,可以让连接处于半打开状态,server还可以传送数据。fin+ack两次。server回ACK时候也必须发送FIN(三次握手时候)。 - 简单介绍下HTTP协议中缓存的处理流程?
2.1 缓存的应用流程是什么?
2.2 与缓存相关的HTTP头部有哪些?
3. 在地址栏键入URL后,网络世界发生么什么?
//dns解析 正向代理反向代理
//http请求编码
//消息怎么样传送到服务器,网络分层(每一层解决自己的问题)
4. 使用HTTP长连接有哪些优点?
首先怎样区分长短连接connect-alive
主要考tcp
减少tcp握手次数,减少慢启动影响
有什么缺点?字符流。传很多请求,会产生队头阻塞。 - CLOSE_WAIT状态产生的原因?
考tcp状态机
被动关闭方的状态(半打开状态),长时间处于这种状态会是处bug - 介绍下多播是怎样实现的?
广播好处和多播好处 - 服务器的最大并发连接数是多少?
考高并发?可以是多少,0-65535.源ip目的ip,tcp包头有端口
tcp的IP地址决定情况下,2的32次方加2的16次方。tp port lock、、、
如何实现高并发?不要让一个链接过长,进程线程优化等等 - TCP和UDP协议该如何选择?
区别?
tcp可靠 面向连接 字符流(可以传送任意长度的信息) 一个报文室友长度的,流量控制(滑动窗口、拥塞控制)
udp实时性更好
选择? - TLS/SSL协议是如何保障信息安全的?
握手阶段交换选择哪种加密协议
PKI证书体系;
密钥交换协议;
对称加密算法; - HTTP2协议有哪些优点?
grpc.比较基础问题
比1.01.1的缺点,首先饼干,长链接下 - 什么是操作系统?