2018 CVTE秋招内推一面面经

项目

做过什么Web项目?
大二的时候接了一个其他学院的外包,在实验室里面做后台,主要管理数据库的东西。

数据库

  1. 用的什么数据库
    MySQL
  2. 有那些常见数据类型
    VARCHAR, CHAR, TEXT, BIGINT,INT等
  3. VARCHAR和CHAR的区别
    VARCHAR不定长,CHAR是定长的
  4. INT(5) 和 INT(11)的区别
    int(M) M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
  5. 使用过什么索引
    PRIMARY、UNIQUE等
  6. 索引失效的例子,为什么失效
    最常见就是LIKE的时候查询字符串左端加上%。这和底层API有关,字符串左端不确定的情况下不能转换为简单比较
  7. 为什么会失效
    InnoDB使用B树或B+树实现索引,当在树中寻找目标叶子结点的时候,由于左端是不确定的,因此无法进行比较,从而索引失效。
  8. 如果数据表没有主键会怎样
    如果是InnoDB,会找到另一个唯一键且非NULL的,用来作为聚簇索引的依据。如果都没找到,则会隐式地生成一个主键
  9. 隐式生成的主键是每个表一个还是所有表共用一个,是一个怎样的主键?
    我认为是一个自增的主键,因为这个用来作为聚簇索引,插入速度严重依赖于插入顺序,按照主键的顺序插入是最快的。
    我认为是每个表独立的,原因不清楚,如果知道的话麻烦解释一下。

网络

HTTP

  1. HTTP常见的状态码
    200 成功
    204 No Content
    302 Moved Temporarily
    400 Bad Request
    404 Not Found
    500 Internal server error
  2. HTTP Method有那些
    • GET
    • PUT
    • POST
    • DELETE
    • PATCH 更新局部资源
    • OPTION 请求WEB服务器告知其支持的各种功能
    • HEAD 获取响应的header(与Get相似)
  3. 浏览器从输入URL到显示页面的过程?
  4. 是一个HTTP请求一条TCP连接吗?
    看是HTTP1.0还是1.1,1.0是一个HTTP请求对应一条TCP连接,1.1默认情况下是使用长连接。
  5. 什么时候会断开TCP连接
    通过超时策略来控制,一定时间没有数据传输则断开。
  6. 怎么判断数据传输完成
    • content-length
      当header上有content-length字段,则使用该字段判断是否接收完毕
    • chunk分块传输
      若header上有字段Transfer-Encoding: chunked,chunk编码的数据,最后有一个 长度为0的chunk标示结束
  7. Cookie的用处和风险?
    为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据。
    风险:可能被拦截、篡改,如果cookie被拦截,就可能取得所有session信息,例如发生CSRF
  8. CSRF的例子

TCP

  1. TCP 三次握手
    1. 客户端发送请求连接报文段,其中首部的SYN=1和seq=i,进入SYN-SENT
    2. 服务端接收到连接请求报文段后,在确认报文段中将SYN,ACK都置1,ack=x+1,seq=y并SYN-RCVD状态
    3. 客户端接收到服务端的确认后,确认报文段的ACK置一,ack=y+1, seq=x+1并进入ESTABLISHED状态,B收到A的确认后,也进入ESTABLISHED状态。
  2. ddos是怎么发生的,怎么降低收到的影响
    说了 利用SYN攻击的ddos,向服务器大量的建立连接请求,是服务器产生大量处于SYN-RCVD状态的半连接,并且不回应服务器的确认,使服务器一直等待。
    应对ddos的措施:
    • 确保服务器的系统文件是最新的版本,并及时更新系统补丁
    • 关闭不必要的服务
    • 限制同时打开的SYN半连接数目,缩短SYN半连接的time out 时间,限制SYN/ICMP流量
  3. TCP意外中断的例子,中断后另一方的状态
    客户端主机出现故障。服务器有一个保活计时器,服务器每收到一次客户的数据,就重置保活计时器,时间的设置通常是两小时。若两小时没有收到客户的数据,服务器就发送一个探测报文段,以后每隔75分钟就发送一次,若一连发送10个探测报文段后仍无客户的响应,服务器就认为客户端出了故障,接着关闭这个连接。
  4. TIME_WAIT 2MSL 的原因
    • 防止三次握手时,第一步握手发送的连接请求在“消失”,在断开连接后出现。
    • 确保客户端发送的最后一个ACK报文段能够到达B。

以上都是这次面试的问答,一些回答纯粹是个人见解,并不确切,如果有不正确的地方还请直接指出来,共同探讨,谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值