当前位置: 首页>大数据>正文

http缓存机制

http缓存机制

http缓存有强制缓存和协商缓存

1.第一次请求

浏览器直接向服务器发送请求拿到返回结果,并将缓存标识存入浏览器缓存,最后页面加载成功

存储位置:memory cache、disk cache、service worker、push cache,调试工具network请求中可以看到size的值,不为0就没有使用缓存

-memory cache:快速读取=》进程内存中的缓存,读取快。时效性短=》浏览器进程关闭缓存释放,再次打开页面不会有memroy cache

-disk cache: 表示磁盘中的缓存,浏览器关闭不释放,手动清除,再次打开会有from disk cache

-Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂,在Chrome浏览器中只有5分钟左右,同时它也并非严格执行HTTP头中的缓存

2.再次请求

1.看是否命中强缓存,如果命中,就直接使用强缓存

2.如果没有命中强缓存,就发送请求到服务器检查是否命中协商缓存

3.如果命中,服务器会返回304告诉浏览器使用本地缓存

4.否则,返回新的资源,并将获取的请求结果再存入浏览器缓存中

3.强制缓存

浏览器不向服务器发送任何请求,直接从本地缓存读取文件并返回status code:200

控制强制缓存的字段 Expires和Cache-Control:

expires:Http1.0控制网页缓存的字段,表示缓存的到期时间

cache-control:Http1.1中控制网页缓存重要的规则

cache-control设置:

-no-cache:使用协商缓存

-no-store:不使用缓存

-max-age:max-age=300 300秒内使用缓存

-public:公有缓存,可以被代理服务器缓存,可被多用户共享

-private:私有缓存,不能被代理服务器缓存,不可被共享

-must-revalidate:当缓存过期时,需要去服务端校验缓存的有效性。

4.为什么expires会被cache-control代替

Expires的控制原理是将使用客户端的时间与服务端返回的时间做对比,

但是如果客户端与服务端的时间因为某些原因产生误差,如时区不同,

那么强制缓存就会直接失效,这样强制缓存存在就没有意义

expires时间是一个绝对值,cache-control时间是一个相对值

cache-control优先级高于expires

5.协商缓存

向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源

控制字段:Last-Modified / If-Modified-Since,Etag / If-None-Match

-Etag/if-None-Match优先级更高

-Last-Modified:是服务器响应请求时,返回该资源文件在服务器最后被修改的时间

-If-Modified-Since: 上次请求返回的Last-Modified,如果请求有这个字段,则服务器会比较if-Modified-since与资源文件在服务器最后修改的时间对比,if-Modified-since小的话,说明上次更新后有新的更新,则重新返回资源,否则的话表示无更新,返回304可以使用更新

-Etag:服务器相应请求是返回的当前资源文件的一个唯一标识

-if-None-Match:上次请求返回的Etag,如果有这个字段,服务会比较这个值和服务器上的资源的Etag,如果一致资源无更新,返回304使用缓存。不一致则返回200新的资源,

缓存是保存资源副本,再次请求时使用资源副本

为什么使用缓存?

减少冗余数据传输:多客户端同时向服务器请求同一份资源时,服务器会将同一份资源多次传输给不同客户端,相同资源被多次传输造成数据冗余,消耗网络宽带。使用缓存可以保留第一次相应的资源副本,后续使用资源副本传输给客户端。节省流量

缓解宽带瓶颈:很多网络为本地客户端提供的宽带比远程服务器宽,客户端会以路径上最慢的网速访问服务器,如果有副本性能将提高很多

避免瞬间阻塞:短时间内大量获取同一份web资源时,比如有什么爆炸性新闻时候,缓存可以减少服务器压力

降低延时距离:请求链路上每台网络路由器都会增加请求的时延,使用缓存可以降低延时性

3.设置缓存过期

http缓存机制,第1张

image.png

4.TCP 和UDP区别

http缓存机制,第2张

image.png

面向报文:面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率

5.http和https区别,http1、1.1、2.0区别

http:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,明文方式发送信息

1.原理:

①:客户端通过TCP与服务器建立连接,然后请求服务器

②:服务器接到请求后相应信息

https:

以安全为目标的 HTTP 通道,是 HTTP 的安全版,基础为SSL安全协议,在TCP与应用层协议之间

http1:

每次请求都需要与服务器建立一个 TCP 连接,服务器处理完成后连接断开(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态),通信开销大

http1.1:

1.默认使用长连接,只要一端没有提出断开TCP连接将被保存,避免大量重复TCP链接的建立和断开,可以同时并行发送多个请求。

2.缺点:无状态导致HTTP头部信息大,明文传输不安全,服务器无法推送消息

http2.0:

1.以SPDY为基础,其主要特性(兼容老版本HTTP协议,同时可以使用SSL功能),专注于性能,在用户和网站直接只用一个连接

2.特性:

二进制传输:请求和响应数据分割为更小的帧,采用二进制编码,多个帧之间可以乱序发送,根据帧首部的流可以重新组装

头部压缩

多路复用:只通过一个TCP链接就可以传输所有的请求数据

服务端推送

3.缺点:

TCP以及TCP+TLS建立连接的延迟

多个请求是跑在一个TCP管道中的,一旦丢包,TCP就要等待重传,阻塞连接中的所有请求

6.DNS解析过程

1.检查浏览器缓存中是否有域名对应的IP

2.检查操作系统host文件

3.向LDNS(LocalDNS)本地DNS服务器请求查询:如运营商DNS域名服务器

4.若LDNS不能直接命中

LDNS会向根域名服务器请求解析,根域名服务器会给LDNS一个根据域名所查询的顶级域名服务器(gTLD)地址,如.com、.cn

LDNS再向返回的顶级域名服务器(gTLD)发请求,顶级域名服务器(.com)会返回域名的权威域名服务器地址

LDNS再向权威域名服务器请求,权威服务器给LDNS返回具体域名的IP和TTL(Time To Live)保存时间

LDNS返回给用户IP和TTL,用户根据TTL进行缓存

7.URL到页面渲染过程

1.DNS解析域名得到IP

2.TCP通过三次握手建立链接

3.浏览器根据ip与端口发起请求

4.服务器收到请求搜索html,并响应

5.状态码200响应成功,浏览器接收到资源,开始渲染

6浏览器根据深度遍历的方式把html节点遍历成dom 树

7.将css解析成CSS DOM树

8.将dom树和CSS DOM树构造成render树

9.JS根据得到的render树 计算所有节点在屏幕中的位置,进行布局(回流)

10.遍历render树并调用硬件API绘制所有节点(重绘)

11.页面渲染完成,断开连接,TCP四次挥手

8.三次握手,四次挥手

三次握手

1.第一次:客户端向服务端发送请求一个数据包,报文内容: SYN=1,seq=x(此处seq为客户端随机生成的序列号),修改自身状态为SYN_SENT(请求连接)

2.第二次:服务端接收后返回一个数据包,报文内容:SYN=1,ack=x+1(接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收),seq=y(服务端随机生成的序列号),修改自身状态SYN_RCVD(等待请求确认)

3.第三次握手:客户端收到数据包后,再次向服务端发送一个数据包,报文内容:SYN=1,ack=y+1,seq=x+1,表示客户端已经收到服务端的确认信息并修改自身状态为ESTABLISHED(连接成功),服务端收到信息后也修改状态为ESTABLISHED

四次挥手

1.第一次挥手:客户端发送一个FIN报文段,FIN=1,seq=u,状态为FIN_WAIT_1待客户端确认

2.第二次挥手:服务端收到之后返回一个ACK报文段,ACK=u+1,seq=v,状态变为CLOSE_WAIT状态

3.第三次挥手:服务端发送FIN报文段:FIN=1,seq=w(新生成的序列号),ACK=u+1,确认断开连接

4.第四次挥手:客户端收到FIN报文段之后,发一个ACK报文段给服务端,ACK=w+1,seq=u+1,此时客户端处于TIME_WAIT(等待足够的时间过去以确保远端TCP 接收到它的连接终止请求的确认),服务端接收到ACK之后关闭连接(CLOSED),客户端等待一段时间之后变为CLOSED


https://www.xamrdz.com/bigdata/7rr1997565.html

相关文章: