自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JAVA开发者@邢先生

JAVA软件开发,分享与交流。{对酒当歌,人生几何; 譬如朝露,去日苦多。 信息时代,技术革命; 科技创新,未来可期。}

  • 博客(103)
  • 收藏
  • 关注

原创 最新Java面试题及答案汇总

最新Java面试题及答案汇总面试题包括以下十八个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。基础模块(一)容器(二)多线程(三)反射(四)对象拷贝(五)JAVA Web(六)异常(七)网络(八)设计模式(九)Spring / Spring MVC(

2021-03-22 10:48:04 514

原创 畅购商城项目,面试问答,项目详解及全部代码

商城项目商城—微服务技术栈1 商城介绍1.1 项目介绍此电商项目属于B2C模式的线上商城,支持用户在线浏览商品,在线搜索商品,并且可以将喜欢的商品加入购物车从而下单购买商品,同时支持线上支付,支付模式支持支付宝、微信、银联支付。用户还可以参与低价商品秒杀。畅购商城采用了微服务架构,微服务技术采用了SpringCloud技术栈,各个微服务站点基于SpringBoot构建,并采用SpringCloud Gateway将各个微服务的功能串联起来,形成一套套系统,同时在微服务网关Gateway中采用过滤和

2021-03-12 21:43:49 10567 1

原创 中国金融行业的现状及发展趋势

1,都说股市是国家的经济晴雨表,但中国是个例外,下面两张图,一是A股大盘走势图,简单说就是大涨大跌,小涨小跌,或是横盘不动,把中国的金融市场投机情绪表现 的淋漓尽致。另一张是房价走势图(以北京数据为例),二十年前,北京房屋的销售均价在3000元/平左右,而到2021年2月销售均价涨到57869元/平,整体增长近二十倍。房价似乎更能体现中国近二十年的经济发展。

2021-02-16 21:11:58 1739 3

原创 分布式RPC框架Apache Dubbo

分布式RPC框架Apache Dubbo1. 软件架构的演进过程软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程,下面我们分别了解一下这几个架构。1.1 单体架构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1azm8MX-1632407511510)(1.png)]架构说明:​ 全部功能集中在一个项目内(All in one)。架构优点:​ 架构简单,前期开发成本低、开发周期短,适合小型项目。架构缺点:​

2021-09-23 22:39:50 272

原创 shell使用

4.3 shell使用shell脚本类似于我们在Windows中编写的批处理文件,它的扩展名是.bat,比如我们启动Tomcat(后面的课程我们会详细讲解)的时候经常启动的startup.bat,就是Windows下的批处理文件。而在Linux中,shell脚本编写的文件是以.sh结尾的。比如Tomcat下我们经常使用startup.sh来启动我们的Tomcat,这个startup.sh文件就是shell编写的。4.3.1 shell入门通过简单的学习,我们编写一个简单的入门shell程序。我

2021-05-06 22:19:31 508

原创 集群cluster

4.集群cluster现状问题:业务发展过程中遇到的峰值瓶颈redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到10万/秒内存单机容量达到256G,当前业务需求内存容量1T使用集群的方式可以快速解决上述问题4.1 集群简介集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9SdwhfLg-1616686073131)(./img/24.png)]集群作用:

2021-03-25 23:28:16 302

原创 哨兵模式

3.哨兵模式3.1 哨兵简介3.1.1 哨兵概念首先我们来看一个业务场景:如果redis的master宕机了,此时应该怎么办?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BM6hSAKa-1616686033486)(./img/16.png)]那此时我们可能需要从一堆的slave中重新选举出一个新的master,那这个操作过程是什么样的呢?这里面会有什么问题出现呢?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LGtbeNSi-

2021-03-25 23:27:30 659

原创 主从复制

2.主从复制2.1 主从复制简介2.1.1 高可用首先我们要理解互联网应用因为其独有的特性我们演化出的三高架构高并发应用要提供某一业务要能支持很多客户端同时访问的能力,我们称为并发,高并发意思就很明确了高性能性能带给我们最直观的感受就是:速度快,时间短高可用可用性:一年中应用服务正常运行的时间占全年时间的百分比,如下图:表示了应用服务在全年宕机的时间[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aP7ktmDz-1616685963

2021-03-25 23:26:38 224

原创 Redis高级 数据删除与淘汰策略

第二章:Redis高级学习目标目标1:能够说出redis中的数据删除策与略淘汰策略目标2:能够说出主从复制的概念,工作流程以及场景问题及解决方案目标3:能够说出哨兵的作用以及工作原理,以及如何启用哨兵目标4:能够说出集群的架构设计,完成集群的搭建目标5:能够说出缓存预热,雪崩,击穿,穿透的概念,能说出redis的相关监控指标1.数据删除与淘汰策略1.1 过期数据1.1.1 Redis中的数据特征Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态

2021-03-25 23:24:18 150

原创 Jedis

4. Jedis在学习完redis后,我们现在就要用Java来连接redis了,也就是我们的这一章要学的Jedis了。在这个部分,我们主要讲解以下3个内容:HelloWorld(Jedis版)Jedis简易工具类开发可视化客户端4.1 Jedis简介4.1.1 编程语言与redis[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YDDVTpS-1616510347095)(img\jedis1.png)]对于我们现在的数据来说,它是在我们的redis中,而

2021-03-23 22:41:52 217

原创 redis常用指令

3. 常用指令在这部分中呢,我们家学习两个知识,第一个是key的常用指令,第二个是数据库的常用指令。和前面我们学数据类型做一下区分,前面你学的那些指令呢,都是针对某一个数据类型操作的,现在学的都是对所有的操作的,来看一下,我们在学习Key的操作的时候,我们先想一下的操作我们应该学哪些东西:3.1 key 操作分析3.1.1 key应该设计哪些操作?key是一个字符串,通过key获取redis中保存的数据对于key自身状态的相关操作,例如:删除,判定存在,获取类型等对于key有效性控制相关操作

2021-03-23 22:35:42 121

原创 Redis(十七)+ JVM(十八)

redis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求高的数据\180. redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列\181. redis 和 memecache 有什么区别?memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富.

2021-03-22 10:32:05 229

原创 秒杀前端+后端

第15章-秒杀前端课程内容:1)了解秒杀需求完成秒杀商品存入缓存完成秒杀首页实现1 秒杀业务分析1.1 需求分析所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。秒杀商品通常有两种限制:库存限制、时间限制。需求:(1)秒杀频道首页列出秒杀商品(4)点击立即抢购实现秒杀下单,下单时扣减库存。当库存为0或不在活动期范围内时

2021-03-22 09:57:43 516

原创 畅购商城项目 订单+用户认证+微信扫码支付+订单处理

第11章 订单课程内容完成订单结算页渲染完成用户下单实现完成库存变更实现1 订单结算页1.1 收件地址分析用户从购物车页面点击结算,跳转到订单结算页,结算页需要加载用户对应的收件地址,如下图:1558301821667表结构分析:CREATE TABLE tb_address (id int(11) NOT NULL AUTO_INCREMENT,username varchar(50) DEFAULT NULL COMMENT ‘用户名’,provinceid v

2021-03-21 02:17:43 1168

原创 商品详情页静态化功能实现

第8章 Thymeleaf学习目标Thymeleaf的介绍Thymeleaf的入门Thymeleaf的语法及标签搜索页面渲染商品详情页静态化功能实现1.Thymeleaf介绍thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合Spring MVC的可

2021-03-21 02:04:13 533 1

原创 商品搜索

第7章 商品搜索学习目标根据搜索关键字查询条件筛选规格过滤价格区间搜索分页查询排序查询高亮查询1 根据关键字查询(1) changgou_service_search项目创建SearchService接口public interface SearchService {​ /** * 全文检索 * @param paramMap 查询参数 * @return */ public Map search(Map<String

2021-03-21 01:56:32 313

原创 MySql(十六)

数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。InnoDB 表只会把自增主键的最大 id.

2021-03-21 01:28:59 283

原创 Zookeeper(十五)

zookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等。主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程.

2021-03-21 01:27:45 178

原创 Kafka(十四)

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。kafka 可以脱离 zookeeper 单独使用吗?为什么?kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。kafka 有几种数据保留的策略?kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。kafka 同时

2021-03-21 01:26:53 146

原创 RabbitMQ(十三)

MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。3、削峰填谷如订

2021-03-17 23:41:04 200

原创 Mybatis(十二)

ORM对象关系映射,数据和实体对象的映射。MyBatis是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC。mybatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 21: …串替换; Mybatis在处理#̲{}时,会将sql中的#{}替…{}时,就是把${}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统安全性。mybatis 有几..

2021-03-17 23:32:42 107

原创 Spring Boot / Spring Cloud(十一)

104. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且

2021-03-17 23:30:33 366

原创 Spring / Spring MVC(十)

90. 为什么要使用 spring?1.简介目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring是分层的JavaSE/EE应用full-stack轻量级开源框架2.轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足

2021-03-16 21:57:28 269

原创 设计模式(九)

88. 说一下你熟悉的设计模式?单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象观察者模式对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。装饰者模式对已有的业务逻辑进一步的封装,使其增加额外的功能,如Java中的IO流就使

2021-03-16 21:50:48 116

原创 网络(八)

79. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。80. forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。直接转发方式(Forward)

2021-03-16 21:50:01 121

原创 异常(七)

74. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。75. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将.

2021-03-16 21:48:53 127

原创 JAVA Web(六)

64. jsp 和 servlet 有什么区别?jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。Jsp是Servlet的一种简化,

2021-03-16 21:48:00 135

原创 对象拷贝(五)

对象拷贝(五)61. 为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了,Java语言中克隆针对的是类的实例。62. 如何实现对象克隆?有两种方式:实现Cloneable接口并重写Object类中的clone()方法;实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下:import java.io.ByteArrayInputStream;import java.io.ByteArrayOutput

2021-03-12 21:24:55 106

原创 反射(四)

反射(四)57. 什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法。58. 什么是 java 序列化?什么情况下需要序列化?简单说就是为了保存在内存中的各种对象的状态(也就

2021-03-12 20:56:42 127

原创 多线程(三)

多线程(三)35.并行和并发有什么区别?**并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36. 线程和进程的区别?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独

2021-03-12 20:54:39 173

原创 容器(二)

容器(二)18. java 容器都有哪些?常用容器的图录:19. Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collections则是集合类的一个工具类/帮助类,其中提供了一系列

2021-03-12 20:51:14 146

原创 基础模块(一)

基础模块(一)1.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,

2021-03-12 20:48:51 321 1

原创 高并发解决方案

高并发解决方案高并发和大流量解决方案高并发架构相关概念  并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行;在互联网时代,所讲的并发,高并发通常是指并发访问,也就是在某个时间点,有多少个访问同时到来。通常一个系统的日PV在千万以上,有可能是一个高并发的系统。有的公司完全不走技术路线,全靠机器堆,这不在讨论范围内。  QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTT

2021-03-10 14:51:55 68

原创 mysql数据库层的优化,web服务器的负载均衡

mysql数据库层的优化优化方向:数据表数据类型优化,索引优化,sql语句优化,存储引擎的优化,数据表结构设计的优化,数据库服务器架构的优化数据表数据类型优化:字段使用什么样的数据类型更合适,性能更快,tinyint、smallint、bigint,考虑空间和范围的问题;char、varchar,存储字符串长度是否固定;enum,特定固定的分类可以使用enum存储,效率更快;IP地址的存储,ip2long(),使用整型存储IP地址索引的优化:建立合适的索引,索引在什么场景下效率最高,索引的创建原则:不

2021-03-10 14:41:04 111

原创 数据库缓存层的优化

数据库缓存层的优化mysql等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对mysql产生的增删改查的操作造成的巨大的IO开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生。极大的解决数据库服务器的压力,提高应用数据的响应速度。常见的缓存形式:内存缓存,文件缓存。缓存数据是为了让客户端很少甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度的降低对数据库服务器的访问压力。默认情况下:用户请求->数据查询->连接数

2021-03-10 14:38:55 182

原创 动态语言层的并发处理

动态语言层的并发处理进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作数据结构的基础,是一个“执行中的程序”;进程的三态模型:多道程序系统中,进程在处理器上交替运行,状态不断的发生变化;运行:当一个进程在处理机上运行时,称该进程处于运行状态,处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个,在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程;就绪:当一个进程获得了除处理机以外的一切所需资源,一

2021-03-10 14:38:11 52

原创 动态语言静态化

动态语言静态化将现有PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态HTML文件的过程。对实时性要求不高的页面比较适合。原因:动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大;访问量大时可能会造成CPU负载过高,数据库服务器压力过大;静态化可以降低逻辑处理压力,降低数据库服务器查询压力静态化的实现方式:  使用模板引擎:可以使用smarty的缓存机制生成静态HTML缓存文件;$smarty->cache-dir = ROOT."/cache";//缓存

2021-03-10 14:37:18 82

原创 建立独立的图片服务器

建立独立的图片服务器独立的必要性:分担web服务器的I/O负载-将耗费资源的图片服务分离出来,提高服务器的性能和稳定性;能够专门的图片服务器进行优化-为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度;提高网站的可扩展性-通过增加图片服务器,提高图片吞吐能力采用独立域名:原因:同一域名下浏览器的并发连接数有限制,突破浏览器连接数的限制;由于cookie的原因,对缓存不利,大部分web cache都只缓存不带cookie的请求,导致每次的图片请求都不能命中cache独立后的问题:如何进行图片上

2021-03-10 14:36:37 113

原创 CDN加速

CDN加速CDN:Content Delivery Network,内容分发网络,尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快更稳定;在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络;CDN系统能够实时的根据网络流量和各节点的连接,负载情况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。本地cache加速,提高了企业站点(尤其含有大量img和静态页面站点)的访问速度;跨运营商的网络加速,保证不同网络的用户都得到良好的

2021-03-10 14:35:55 392

原创 浏览器缓存和数据压缩优化

浏览器缓存和数据压缩优化HTTP缓存机制:如果请求成功会有三种情况:200 from cache:直接从本地缓存中获取相应,最快速,最省流量,因为根本没有向服务器进行请求;304 not modified:协商缓存,浏览器在本地没有命中的情况下请求头中发送一定的校验数据到服务端,如果服务端数据没有改变浏览器从本地缓存响应,返回304,快速,发送的数据很少,只返回一些基本的响应头信息,数据量很小,不发送实际响应体;200 OK:以上两种缓存全部失败,服务器返回完整响应,没有用到缓存,相对最慢。浏览器认为本

2021-03-10 14:35:08 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除