内容来源:快手测试开发春招面经2021-04-07
面试准备:
一面(60分钟):
1.自我介绍 & 实习经历
2.TCP和UDP区别
TCP是传输控制协议,UDP是用户数据报协议;连接:TCP是三次握手,UDP是不用连接;服务对象:TCP是一对一,UDP任意多、一;可靠性:UDP不行;头部开销:TCP20字节,UDP8字节;拥塞控制:UDP没有;适用场景:TCP优先保证传输可靠性,发送文件、重要信息等;UDP优先保证传输速度:实时通信、视频传输等。
3.TCP的三次握手、四次挥手
三次握手(1.客户端发送SYN报文,状态变为SYN_SENT;2.服务器端接收SYN报文,变为SYN_RCVD状态,并返回SYN+ACK报文;3.客户端接收报文,变为ESTABLISHED状态,发送ACK报文,使服务器也变为该状态。)
四次挥手(1.客户端发送FIN报文,状态变为FIN-WAIT-1;2.服务器端接收报文,回复ACK报文,状态变为CLOSE-WAIT,客户端收到后变为FIN-WAIT-2状态;3.服务器端将遗留数据传给客户端,发送FIN+ACK报文,进入LAST-ACK状态;4.客户端接收,发送ACK报文,进入TIME-WAIT状态。)
4.HTTP报文格式
请求报文:请求行(方法、URL、协议版本)、请求头部(关键词-值对,每行一对,用冒号隔开)、空行、请求数据。
响应报文:状态行、消息报头、响应正文
5.如何实现HTTP长连接
1.1版本开始默认使用长连接。使用长连接的HTTP协议,会在响应消息报文段加入: Connection: keep-alive。
6.HTTP中GET、POST
GET 用于数据读取,请求HTML页面信息,请求具体内容。
POST 用于表单发送,将数据发送给服务器端。
7.数据库索引
MySQL的InnoDB引擎默认支持BTree索引。索引优点就是,减少查询时间、减少分组、排序语句的时间、创建唯一索引可以保证每一行数据的唯一性。缺点,每次增删改数据时候也得改索引、占用额外磁盘空间。
8.数据库左连接、右连接、内连接、外连接
左连接:左表是主表,右表没有的为空集
右连接:右表是主表,左表没有的为空集
内连接:只显示共同的表数据(交集部分的数据建立映射关系)
外连接:都显示(全集)
9.SQL语句的执行顺序
书写顺序SELECT →FROM → JOIN → ON → WHERE → GROUP BY → HAVING → ORDER BY→ LIMIT
例子SELECT * FROM 表 LIMIT (page-1)* pageSize,pageSize
执行顺序FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY→ LIMIT
10.一道SQL题,两张表,找出每个科目的前五名学生
1:Select top 5 * from 表 order by 成绩 desc
2:Select top 5 姓名,sum(总成绩)from 表 group by 姓名 order by sum(总成绩) desc

二面(45分钟):
1.详细问实习项目和平时课程项目
2.问了问linux上传文件的命令,本地上传文件到服务器的方法
上传rz,下载sz,需要yum install lrzsz。
3.用过什么前端框架,用过vue吗
没用过
4.常用的python包,你如何使用的
Numpy(科学计算的基础库)
5.python三元组的使用
(没用过)
6.Socket和WebSocket的区别和使用方法
Socket通信中的一端,Socket:(IP号:端口号)
WebSocket:客户端服务器端的通信协议,一次握手,无限连接。
7.Js变量命名和Js函数命名方法
(没用过)
8.你平时是如何对变量名,函数名,常量名进行命名的
变量名:小驼峰,eatApple
函数名:小驼峰,eatApple
常量:大写字母,CAR_NUMBER
9.手撕代码(简单级别)
10.目前有什么offer了吗
11.提问环节