前言
前段时间找工作面试笔记
大家有面试录音或者记录的也可以发给我,我来整理答案呀
爱盈利一面笔记
- 前言
- 1 所有请求都只用get不用post可行吗
- 2 假如需要通过get来传输文件该怎么做
- 3 MD5是做什么的
- 4 base64是做什么的
- 5 mysql中条件 or会导致索引失效吗
- 6 mysql中使用> <会导致索引失效吗
- 7 联合索引(A,B,C) 查询条件只判断A,会调用联合索引吗
- 8 联合索引(A,B,C) ,where 中判断 A order by 中判断B 联合索引会失效吗
- 9 如何通过redis制作一个限流的功能,比如每60秒内只能响应100个请求,多的请求就直接报错
- 10 若依的防止重复提交
- 11 假如有一个用户列表数据很多,前端请求时,每页请求十条。如果防止这个时候有新用户注册导致第一页数据中最后一条数据,请求下一页时出现上一页的最后一条数据
1 所有请求都只用get不用post可行吗
- 技术上可行,但是会存在一些问题
- 语义混淆,RESTful API 设计http请求,如get post put delet等,不仅是定义了交互方式,也体现了语义上的约定。
- 缓存和问题,get请求通常是会被浏览器,中间代理缓存的,从而减少服务器的压力,且可见的不安全。post 通常是不会被缓存的,因为post通常会改变服务器的状态,且不会展示在链接后面
- get后面拼接的长度也有限制。
2 假如需要通过get来传输文件该怎么做
- 可以通过base64进行编码,然后后端接受之后用过base64进行解码.(这种方法不适合传递太大的文件,因为base64编码之后会增加文件大小,而url的长度是有限制的)
3 MD5是做什么的
- 数据校验: MD5常用于检验数据的完整性。通常比较文件或数据块在传输过程中是否损坏或被修改
- 数字签名和证书:MD5用于生成数据的哈希值,作为数字签名的一部分,用于校验数据的安全性和完整性
- 存储密码: 常常将密码通过MD5生成hash值存储,用户登录时,需要通过对比输入的密码是否与hash值对应。但是也可以通过碰撞攻击,因为MD5生成的哈希值只有128位,即不同的数据产生相同的hash值