HTTP缓存协议实战

      最后更新:2022-02-22 20:05

      文章目录

      • HTTP缓存协议实战
        • 一、什么是缓存
        • 二、为什么要使用缓存技术
        • 三、HTTP缓存的作用
        • 四、HTTP缓存协议

      HTTP缓存协议实战

      一、什么是缓存

      缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存。当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用。如果找不到,则再去其他数据源中查找。

      二、为什么要使用缓存技术

      缓存的本质就是用空间换时间,以临时存储的数据暂时代替数据源中读取最新的数据,这种方式带来的好处在不同的场景下是不一样的。

      举个例子:

      当我们需要喝水时,我们会拿出一个水杯,去水龙头接一杯水来喝。大家可以思考一下,为什么用杯子来喝水,而不是直接用嘴巴在水龙头接水喝。

      用杯子喝水确实存在一些既有的问题,比如杯子里面的水容易变凉,而水龙头流出的水确是恒温的。我们可以想象一下,公司里的同事们排队在水龙头下面喝水的场面,确实有点滑稽,我们宁愿接受杯子里的水会变凉这个既有问题。

      用杯子喝水有以下几个优势:

      用杯子喝水解决了总是要去找水龙头的问题,因为杯子可以一次接更多的水。

      用杯子喝水更不容易洒出来,不容易浪费水。

      用杯子喝水比趴在水龙头下喝水更优雅。

      我们把杯子看成一个缓存池,杯中的水看成缓存,我们接受了杯中水会变凉的问题,相当于牺牲了数据的实时性。把这些优势换一个方式来描述,于是使用缓存的优势变成了下面几个:

      降低了系统压力;

      节省了资源消耗;

      优化用户体验。

      三、HTTP缓存的作用

      网络的其中一个特点就是不稳定性,很多用户受到网速慢的困扰。

      服务器在大量用户访问的场景下实时计算数据也很容易产生瓶颈,导致服务变慢。从缓存技术具备的优势来看,很适合解决网络服务不稳定的问题。

      四、HTTP缓存协议

      协议是沟通过程中双方都遵守并且使用的一种规则。举个栗子,客户端和服务器两位大兄弟在新款机型问题上进行了几次沟通?

      客户端:大哥,新款nex发布没?

      服务器:老弟,还没发,你记住,别老来问我!

      一周后…

      客户端:大哥,我又来了,最新情况如何?

      服务器:跟上次一样。

      一个月后…

      客户端:大哥,这都一个月了,怎么样了啊?!

      服务器:已经开售啦!

      在这个例子里面,客户端与服务端沟通过程中就遵循某种规则,我们来看一下。

      数据部分:机型的内容;

      协议部分:1)别老来问我,2)最新情况如何,3)跟上次一样。

      服务端说的这些话,客户端都能看懂并且明白这些话中所蕴含的意义,这就是客户端与服务端之间达成的某种通讯协议。

      4.1 HTTP消息头

      在介绍HTTP缓存协议之前,我们先来了解一下HTTP消息头的基础知识。我们对HTTP/HTTPS的数据请求都比较熟悉,在HTTP的数据请求中有一种信息叫做“头部信息”。

      头部信息是在客户端请求或者服务端响应是传递给对方的一种信息。我们来看一下HTTP协议的组成部分。

      HTTP 请求的组成

      状态行、请求头、消息主体三部分组成。

      HTTP 响应的组成

      状态行、响应头、响应正文。

      其中,请求头和响应头就是我们这里说的“头部信息”或者又叫“消息头”。那么头部信息有什么作用呢?

      4.2 请求头

      协议头
      作用
      Cookie 携带cookie信息
      User-Agent 携带ua信息
      Referer 标识来源
      Content-Length 标识请求数据大小

      4.3 响应头

      协议头 作用
      server 服务器的名称
      data 数据时间
      Content-Length 响应数据长度
      Location 重定向时的地址

      我们今天要讲的缓存协议——Cache-Control, 也是放在消息头中进行控制的。

      4.4 缓存协议

      在第一节中,我们介绍了使用缓存技术的三个优势,在网络数据交换的过程中,使用缓存技术同样有这三个优势。

      1)降低系统压力

      使用HTTP缓存技术,可以有效的降低服务端的压力,服务端不需要实时计算数据并返回数据。

      2)节省资源消耗

      使用HTTP缓存技术,可以有效的避免大量的重复数据传输,降低流量消耗。

      3)优化用户体验

      使用HTTP缓存技术,本地缓存可以以较快的速度加载,减少用户等待时间。

      在讲HTTP协议如何实现缓存之前,我们先来讲一下缓存类型。HTTP缓存一般被分为两类,私有缓存和共享缓存。

      4.4.1 私有缓存

      …
      了解更多,请关注 公众号 “ [code 杂坛] “!

      END

      Mysql数据库优化秘籍

      HTTPS 如何保证数据传输安全 —— TLS 协议

      Kafka高吞吐、高性能核心技术及最佳应用场景

      五分钟搭建基于Prometheus + Grafana实时监控系统

      #文末福利#
      欢迎公众号留言书名,免费赠送电子书大礼包,限1单/人,先到先得!
      电子书单:
      《增长黑客:创业公司的用户与收入增长秘籍》
      《人月神话:互联网人两大圣经之一》
      《钝感力(日)渡边淳一著:用钝感去管理,更加健康》
      《深入理解Nginx模块开发与架构解析第2版》
      《计算广告:互联网可计算广告发展史》
      《置身事内:中国政府与经济发展》

      了解更多,请关注 公众号 “ [code 杂坛] “!

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类