HTTP的场景实践 | 青训营

61 阅读2分钟

开头

这是2023暑期青训营的第四篇笔记啦,本次笔记记录一次实践:HTTP的场景实践:任选一个浏览器,对于其涉及的请求中的缓存策略展开具体分析(不能选择今日头条);

既然不能选择今日头条,那我就向最常用的B站下手了.让我看看bilibili是如何使用缓存策略的

浏览器缓存策略

既然是查看缓存策略,那什么是缓存策略?

浏览器缓存是一种机制,它允许浏览器在首次加载网页后,将一些资源(比如图片、样式表、脚本等)保存在本地,以便在后续访问同一网页时能够更快地加载这些资源。

浏览器缓存协商策略可以减少网络流量消耗,加快解析进度,减少服务器负载,但是会占用用户较大的内存空间,而且可能更新不够及时

浏览器的缓存过程如下:

  • 开始加载,域名解析,DNS缓存
  • 本地缓存(memory缓存)
  • Http缓存(强缓存和协商缓存)
  • 服务端缓存(cdn缓存)

实践

首先打开调试器network,好家伙居然有403(服务器拒绝),被拒绝的都是xhr请求,不过这与浏览器缓存协商无关,先不管. image.png b站页面发出了相当多请求呢,在请求中挑中一个200(成功)的静态资源请求,观察标头如下: image.png 其中与缓存策略相关的有

  1. Cache-control: max-age = 31536000, Expires: Mon, 08 Apr 2024 01:43:52 GMT这两个都规定了缓存过期的时间,属于强缓存
  2. Etag:1a48df81c320e53921360926cedb56aa,用于判断这个内容是否已经缓存了,如果已经缓存返回304(临时重定向)
  3. Last-Modified:Fri, 24 Sep 2021 08:18:46 GMT,上一次修改的时间

总结

网络学科深似海,上网简单,但是计算机网络真的高深莫测,学的越多越觉得计算机网络深不见底. 之前我只是知道基础的应用,如get,post,以及一些简单的标头等内容,但是还是折磨了很久,如今越学越没底,今后还是要在这方面多多努力啊拼命水