分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

http 中的缓存

发布时间:2023-09-06 02:19责任编辑:沈小雨关键词:http缓存

如何判断缓存新鲜度

  • If-Modified-Since告诉服务器, 在服务器中的响应报文中有一个Last-Modified字段, 如果两者一直则表示在浏览器中缓存的文件是最新的, 可以直接使用浏览器缓存中的副本
  • If-None-Match字段告诉服务器, 它的值为ETag的id号, 如果服务器端的Etag的id号与这个字段一直则使用缓存中的数据, 返回304

在request中有关cache的字段

  • Cache-Control: no-cache 不使用缓存
  • If-Modified-Since
  • If-None-Match
  • Cache-Control: max-age, 缓存文件在浏览器端缓存的时间

response中有关cache的字段

  • Cache-Control: public, 公有缓存
  • Cache-Control: private, 私有缓存
  • Cache-Control: no-store, 禁止使用缓存
  • Date: 响应发送的时间
  • Expires: 缓存失效的时间
  • Last-Modified: 服务器端文件的最后修改时间
  • ETag: "67adsfaf908", 和request中的If-None-Match进行比较, 如果一样则让浏览器直接使用放在缓存中的数据

注意

  • 对于缓存有效的判断, 先根据Cache-Control中的max-age判断, 如果没有这个key-value则通过Expires进行判断

304响应过程

  • 浏览器发送request给服务器 -> 浏览器先检查在本地缓存中是否已经有了这个资源 -> 如果有了则获取其中的If-Modified-Since, 构成响应报文, 发送给服务器端 -> 服务器端通过If-Modified-Since和响应的Last-Modified的值进行比较, 如果一致则表示在浏览器中缓存的数据就是最新的数据, 于是服务器发送304状态码的响应 -> 浏览器从本地缓存中获取资源

http 中的缓存

原文地址:https://www.cnblogs.com/megachen/p/9840427.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved