计算机网络
HTTP
HTTP1.0
- 增加POST和HEAD请求方式
- 支持发送任何格式的内容
- 回应格式变了:状态码、缓存
缺点:
- 连接无法复用
-
HTTP1.1
HTTP1.1使用长连接Connection: keep-alive的方式,减少了每次请求都进行三次握手的开销
- 支持管道的网络传输方式,请求发出去不用等待请求的回应,可以直接发送下一个请求
- 允许只请求资源的某个部分,即返回码是206(Partial Content)
- 增加了缓存的控制策略 If-modified-since; expires
HTTP1.1的缺点:
- 队头阻塞:
服务器必须按照请求的顺序发送对这些请求的响应,如果处理某个请求时间比较长,那么后续的请求处理都会被阻塞住,因此HTTP1.1管道的传输方式这种方式解决了请求的队头阻塞,不能解决响应的队头阻塞
- 头部压缩
- 如果是同时发送多个请求,请求的头部都是一样的,协议会帮你消除重复的部分,在服务端和客户端维护一张头部信息表,只需要
- 二进制格式,增加数据传输的效率
- 数据流
- 多路复用
- 一个连接中并发多个请求或回应,而不用按照顺序一一对应。
- 服务器推送
http1.1的长连接和http2.0的多路复用到底有啥区别?
长连接:同一个域名访问同一个文件的多个请求都可以复用一个tcp连接(不用像1.0一样 每次请求都需要重新建立连接)
依然存在的问题:1.多个请求只能被串行处理(数据基于文本,只能按顺序传输);2.访问多个不同的文件依然会建立多个请求。
多路复用:同一个域名访问多个文件的请求也可以复用一个tcp连接,且多个请求可以被并行处理。
并行实现原理:http2.0引入二进制数据帧和流的概念(数据帧对每一个数据进行标识,可以不按顺序传输,从而实现并行)
一致性哈希
目的是解决分布式缓存的问题。 在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。
一致性哈希主要就是解决当机器减少或增加的时候,大面积的数据重新哈希的问题,主要从下面 2 个方向去考虑的,当节点宕机时,数据记录会被定位到下一个节点上,当新增节点的时候 ,相关区间内的数据记录就需要重新哈希。
参考:
https://blog.csdn.net/qq_33945246/article/details/105113417
B+树
- 叶子结点存放数据,非叶子结点存放索引
- B+树每个结点都有一条引用链指向相邻的结点
- 查找效率比B树更稳定,查找时是从根节点到叶子结点
一、操作系统
1、操作系统四大特性
二、计算机网络
1、HTTP1.1的有点与缺点
三、数据库
1、如何保证Redis的高可用
2、索引的分类
3、你平时是怎么建立索引的
有什么技巧或者需要考虑的
4、联合索引和单独建立索引的区别
5、SQL你平时是怎么优化查询的
6、一致性hash
分布式缓存
7、Nginx能做什么
https://juejin.cn/post/6844903670434250759
- 反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器 - 负载均衡
摊到多个操作单元上进行执行 - HTTP服务器(包含动静分离)
- 正向代理