首页 > 其他分享 >HTTP的缓存机制是什么?

HTTP的缓存机制是什么?

时间:2023-06-09 18:05:06浏览次数:39  
标签:缓存 HTTP 请求 浏览器 服务器 机制 资源

HTTP的缓存机制是什么?_服务器

HTTP缓存机制作为一项重要技术,能够提高网页加载速度和节省网络流量。那它的缓存的机制是什么?今天我们就来说说。


一、HTTP的缓存机制是什么?

1.客户端请求资源

当我们在浏览器中输入网址或点击链接时,浏览器会向服务器发出HTTP请求,请求特定的资源,如网页、图像或脚本文件。

2.服务器响应

服务器接收到请求后,会返回一个HTTP响应,其中包含所请求资源的内容,以及一些与缓存相关的头部信息。

3.缓存检查

浏览器在接收到服务器响应后,会检查响应中的缓存相关头部信息,如"Cache-Control"、"Expires"和"ETag"等。

4.缓存判断

根据缓存头部信息,浏览器决定是否将该资源存储在缓存中。如果缓存可用且有效(未过期),浏览器可以直接从缓存中获取资源,无需再次请求服务器。

5.服务器验证

如果缓存过期或需要进行验证,浏览器会向服务器发送一个条件请求,携带上一次获取的资源的验证信息,如"ETag"。服务器通过比较验证信息来确定是否返回新的资源内容。

6.重新获取或使用缓存

如果服务器验证确定资源没有更改,服务器会返回一个"304 Not Modified"的响应,告诉浏览器可以使用缓存副本。否则,服务器将返回新的资源内容,浏览器会更新缓存并使用新的资源。


二、缓存策略

合理的缓存策略也不复杂,大致就分为:利用"Cache-Control"和"Expires"头部信息,设置适当的缓存有效期;通过在响应中添加"ETag"头部信息,进行验证是否有新的资源可用;使用"Vary"头部信息确保缓存正确地适用于特定的资源;CDN加速缓存……等手段,都可以有效帮助我们设置合理的缓存策略。

通过合理配置缓存策略,服务器和浏览器可以更好地协同工作了,提升网页加载速度,减轻服务器负担,并降低网络流量消耗。

标签:缓存,HTTP,请求,浏览器,服务器,机制,资源
From: https://blog.51cto.com/u_15889524/6449669

相关文章

  • Cache - 直接映射缓存
    参考https://zhuanlan.zhihu.com/p/1022934371.Cachelinecachesize:cache可以缓存最大数据的大小。将cache均分相等的块,每一块称为cacheline,现在的硬件设计中,一般cacheline的大小为4-128字节,cacheline做的太小会导致tag资源占用过大。cacheline是cache和主存......
  • Qt+QtWebApp开发笔记(五):http服务器html中使用json触发ajax与后台交互实现数据更新传递
    前言  前面完成了页面的跳转、登录,很多时候不刷新页面就想刷新局部数据,此时ajax就是此种技术,且是异步的。  本篇实现网页内部使用js调用ajax实现异步交互数据。  在js中使用ajax是通过XMLHttpRequest来实现的。下载地址  链接:https://pan.baidu.com/s/1tJMTPhIIyVE40......
  • 浏览器存储和浏览器缓存的区别?
    浏览器存储和浏览器缓存是两个不同的概念,其主要区别如下:数据类型不同浏览器存储可以用来存储各种类型的数据,包括字符串、数字、布尔值、对象、数组等等。而浏览器缓存则主要用于缓存已经访问过的资源文件,例如HTML、CSS、JavaScript、图片、音视频等。存储位置不同浏览器......
  • 【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
    本文目录一、J2Cache简介二、数据读取三、使用方法及实际示例3.1引用Maven3.2准备配置3.3编写代码3.3.1Demo示例3.3.2实际案例四、常见问题4.1J2Cache的使用场景是什么?4.2为什么不能在程序中设置缓存的有效期4.3如何使用memcached作为二级缓存4.4使用何种Redis的存......
  • Https跳到http时session信息丢失的分析及解决方案
    http://java-guru.javaeye.com/blog/157897关键字:httpshttpsession我们在YMU(websitemonitoring)项目开发过程中发现一个关于登录功能的奇怪的问题。当按一般流程使用登录功能时是没问题的,即:点击官网(http://YouMonitor.Us)的login链接,然后跳转到https://YouMonitor.Us/l......
  • 深入浅出Spring原理及实战「缓存Cache开发系列」
    1.  缓存Cache的概念和作用在现代软件开发中,缓存已经成为了一个非常重要的概念。缓存是指将数据存储在一个临时的存储器中,以便于快速访问和读取。缓存的作用是提高系统的性能和响应速度,减少网络流量和数据库的负载。以电影院购票为例,当用户选择一部电影时,系统需要查询电影的......
  • Python 协程池,异步IO非阻塞式,http 请求
    先写个FlaskdemoimporttimefromflaskimportFlaskapp=Flask(__name__)@app.route('/<id>')defhello(id):time.sleep(2)return'Hello,World!:%s'%idif__name__=='__main__':app.run()协程请求import......
  • jmeter-http请求中post请求
    1、选择取样器-http请求,填写完整web服务器信息、http请求选择post、路径写请求路径(注意从/开始)2、2.1post请求数据为map格式(键值对),直接将键值对添加到参数表中即可 2.2post请求数据为json格式,将json格式的请求数据加到bodydata中,在请求头文件中添加Content-Type的值为appli......
  • 如何用get方式、post方式向http接口发送数据
    1.项目环境如下:myeclipse6.5、tomcat5.0、system:xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcall包,用来保存http接口和调用的客户端。2.准备需要的jar包*commons-httpclient-3.0.jar*commons-logging.jar*commons-codec-1.3.jar......
  • jmeter-http信息头管理器
    将requestheads中的键值对统一放到配置元件-http信息头管理器中http信息头管理器分为两种公共的、私有的如果是统一添加的直接添加一个公共的http信息头管理器即可;如果请求的头文件中有特殊的键值对,那么单独在请求下添加一个http信息头管理器即可 ......