广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >web面试常问http缓存解析相关
  • 603
分享到

web面试常问http缓存解析相关

2024-04-02 19:04:59 603人浏览 安东尼
摘要

目录为什么要有Http缓存?http缓存之 强制缓存http缓存之 协商缓存(对比缓存)协商缓存中的资源标识为什么要有http缓存? 1.当输入网址到加载出页面, 电

为什么要有http缓存?

1.当输入网址到加载出页面, 电脑会经过"CPU计算、网络请求、页面渲染"等一系列步骤;

2.“网络请求"是其中最不确定、最耗时的一个环节, 针对这个环节, 我们可以通过"减少网络请求的体积和数量”, 来更快加载出页面, 这是"缓存"存在的原因;

3.通过"缓存"可以实现"减少网络请求的体积和数量";

http缓存之 强制缓存

1.当第一次访问某个网站, 该网站后端如果认为请求的资源(CSSjs、图片等)应该被浏览器缓存下来

2.后端会在响应头中添加一个配置:

Cache-Control: max-age=12146545(单位:秒)

3.当我们再次请求该网站时, 会直接从本地缓存读取资源, 不会向服务器请求缓存的资源

4.如果缓存资源过期了, 会从服务端请求所有资源, 并再次缓存加了配置项的资源

5.Cache-Control 的设置, 由后端开发决定, 不涉及前端, 当然也可以设置成不缓存: Cache-Control: no-cache

在这里插入图片描述

http缓存之 协商缓存(对比缓存)

1.协商缓存是服务端的一种缓存策略;

2.当第一次访问某个网站, 发送请求时, 服务器会返回资源和资源标识. 浏览器会把资源和资源标识都缓存下来;

3.当再次发送请求时, 会带上资源标识, 服务器会把请求中的资源标识, 和服务器中的最新资源标识, 作对比:

  • 如果一致: 服务器只返回304, 浏览器会在缓存中直接获取资源(减少请求数据的体积);
  • 如果不一致: 服务器会返回200请求的资源最新资源标识 (体积会相对大一些)

在这里插入图片描述

协商缓存中的资源标识

资源标识有两种, 发送请求时, 都是放在请求头中:

Last-Modified : 资源上一次修改的时间

If-Modified-Since: xxxxx (键名和Last-Modified不一样)

在这里插入图片描述

ETag : 资源对象的唯一字符串

If-None-Match: xxxx(键名和Last-Modified不一样)

在这里插入图片描述

优先级的问题

一般来说会优先使用 ETag , 因为 Last-Modified 的值只精确到 秒级

文件如果每隔一段时间都重复生成,但内容相同。

 Last-Modified 会每次返回资源文件,即便内容相同。
但是Etag可以判断出文件内容相同,就会返回304,使用缓存

在这里插入图片描述

以上就是WEB面试之http缓存解析的详细内容,更多关于web面试http缓存的资料请关注编程网其它相关文章!

--结束END--

本文标题: web面试常问http缓存解析相关

本文链接: https://www.lsjlt.com/news/136514.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • web面试常问http缓存解析相关
    目录为什么要有http缓存?http缓存之 强制缓存http缓存之 协商缓存(对比缓存)协商缓存中的资源标识为什么要有http缓存? 1.当输入网址到加载出页面, 电...
    99+
    2022-11-12
  • 面试攻略:如何回答 Java 缓存相关问题?
    在面试过程中,Java 缓存相关问题是经常被问到的一个话题。因为缓存是提高系统性能和用户体验的重要手段,而在 Java 语言中,缓存机制也是非常重要的一部分。本文将介绍 Java 缓存相关问题的常见问题和解决方法,并通过演示代码来帮助读者...
    99+
    2023-10-06
    缓存 学习笔记 面试
  • ASP 开发者必读:path 存储相关面试问题解析!
    对于 ASP 开发者来说,path 存储相关问题是经常被问到的面试问题。在本篇文章中,我们将深入探讨 path 存储相关问题,并且提供一些演示代码来加强理解。 什么是 path 存储? 在 ASP 中,path 存储是指存储在 web 服...
    99+
    2023-11-14
    面试 path 存储
  • JavaScript面试中需要了解的缓存相关知识有哪些?
    在 Web 开发中,缓存是一个非常重要的概念。当我们处理大量数据或者频繁地进行网络请求时,缓存能够帮助我们提高网站的性能和用户体验。同时,在 JavaScript 面试中,缓存也是一个非常常见的考点。在本文中,我们将介绍一些 JavaSc...
    99+
    2023-06-29
    缓存 javascript 面试
  • 关于前端面试中常提到的LRU缓存策略详析
    目录LRU一、为什么要使用Map是来定义容器二、应用场景三、代码实现总结LRU LRU(Least Recently Used)最近最少使用缓存策略,根据历史数据记录,当数据超过了限...
    99+
    2023-05-18
    lur缓存策略 lur缓存
  • 面试官常问的Go语言缓存问题,你需要了解的是什么?
    Go语言的高效性是众所周知的,而在实际应用中,缓存是一个极为重要的环节。在面试中,面试官常常会问到有关Go语言缓存的问题。本文将介绍一些常见的Go语言缓存问题,并解释你需要了解的相关知识。 什么是缓存? 缓存是指将一些经常需要访问的数据...
    99+
    2023-06-29
    缓存 javascript 面试
  • Go 开发者必备:面试中常见的缓存问题及解决方案
    在 Go 开发中,缓存是一个非常常见的话题。在面试中,面试官经常会问及缓存相关的问题。这篇文章将介绍 Go 开发中常见的缓存问题及解决方案。 一、缓存的概念 缓存是一种数据存储方式,它通过将常用的数据存储在内存中,以提高数据的访问速度。缓...
    99+
    2023-06-13
    面试 缓存 linux
  • 存储关键字必备技能:Go语言面试必备问题解析
    Go语言是一门高效、简单、可靠的编程语言,越来越受到程序员的喜爱。如果你正在准备Go语言的面试,那么一定要掌握Go语言的存储关键字。下面是一些必备问题和解析,希望对你有所帮助。 什么是存储关键字? 存储关键字是指在Go语言中有特定含义...
    99+
    2023-08-19
    关键字 面试 存储
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作