其他分享
首页 > 其他分享> > 面向校招 HTTP与前端缓存知识点总结

面向校招 HTTP与前端缓存知识点总结

作者:互联网

在这里插入图片描述

一. 基础概念

HTTP 特点

持久连接 Keep-Alive

管线化

GET 和 POST 区别

常用状态码

二. 三次握手与四次挥手

三次握手

假如是两次握手

1. C:喂喂喂,我是 C,你听的到吗?
2. S:在在在,我能听到,我是 S,你能听到我吗?
3. C:(听到了,老子不想理你)
4. S:喂喂喂?听不听到?我 X,对面死了,我挂了。。

假如是四次握手

1. C:喂喂喂,我是 C,你听的到吗? 
2. S:在在在,我能听到,我是 S,你能听到我吗? 
3. C:听到了,你呢?你能听到吗?
4. S:??你是智障?我不是说了我能听到吗,不想跟 xx 说话。。。

三次握手

1. C:喂喂喂,我是 C,你听的到吗? 
2. S:在在在,我能听到,我是 S,你能听到我吗? 
3. C:听到了。我们今天去钓鱼吧。。balabala

总结

1. 第一次握手,C 端发送 S 端接收到,证明了 C 端的发送能力
2. 第二次握手,S 端发送 C 端接收到,证明了 S 端的接收能力和发送能力
3. 第三次握手,C 端发送 S 端接收到,证明了 C 端的接收能力
4. 在可靠的同时,还要考虑性能和时间问题,所以三次握手最合理

四次挥手

全双工

A 和 B 可以互相通信,类比发短信,同一时间双方都可以发信息给对方,互不影响

单双工

A 和 B 只能单向通信,类比打电话,同一时间只能一人说话,另一人听,如果两人一起说话,那谁都听不清楚了,没有意义

四次挥手

1. C:不好意思 S,我这边需要关闭连接了,你准备一下?
2. S:好的 C,我收到你的关闭信号了,我还有数据没发好,你等我下。
3. S:C 老弟,我可以关闭了,给你最后说一下,等下你回应我的话,我就直接关了;
4. C:好的老哥,我回应你一下,你收到就关闭吧,不用理我
5. S:(收到 ack 信息,直接就关闭了),此过程不产生数据的交互,不算挥手次数
6. C:等待 2MSL(最大报文段生存时间)后,S 没东西给过来,我也关了;

与三次握手的区别

四次挥手的中间两次挥手相当于把三次握手的中间一次握手拆分为两次

为什么 C 端需要等最大报文生存时间后才能关闭?

担心网络不可靠而导致的丢包,超过了最大等待时间的话,就算收不到也没用了,所以就可以关闭了。

三. 缓存

Expires(强缓存)

Expires: Thu, 10 Nov 2020 08:45:11 GMT

Cache-control(强缓存)

Cache-control:public, max-age=2592000

Last-Modified & If-Modified-Since(弱缓存)

Last-Modified: Mon, 10 Nov 2020 09:10:11 GMT
If-Modified-Since: Mon, 10 Nov 2020 09:10:11 GMT

Etag & If-None-Match(弱缓存)

ETag: "asj1jbasdbb4skdbk-ajs"
If-None-Match: "asj1jbasdbb4skdbk-ajs"

分级缓存策略

  1. 200 from cache:最底层,由 Expires、Cache-control 控制(Cache-control 优先级大于 Expires),若命中缓存则直接读取,若没有命中,则进入下一状态
  2. 304:这一层由 Last-Modified、Etag 控制(Etag 优先级大于 Last-Modified),若服务器校验通过,返回 304 及旧的 Last-Modified、Etag 字段,浏览器读取缓存;若服务器校验不通过,进入下一状态
  3. 200:若服务器校验不通过,或用户强制刷新页面,则返回 200 和文件以及新的 Last-Modified、Etag 字段,浏览器更新缓存

总结

四. 参考文章

一文读懂前端缓存

本文大部分为自己总结,部分示例时参考了一些文章,但因误删了浏览器历史记录,导致部分参考文章无法找回,若有知情者请与我联系,我会补上原文链接。

再次重逢的时间 发布了4 篇原创文章 · 获赞 0 · 访问量 91 私信 关注

标签:知识点,缓存,HTTP,请求,Modified,Etag,Last,校招,POST
来源: https://blog.csdn.net/weixin_44583553/article/details/104416563