状态码304的简单介绍[通俗易懂]

状态码304的介绍

大家好,又见面了,我是你们的朋友全栈君。

参考: 百度百科HTTP Status Code 304 状态码的详细讲解

      304 是对客户端有缓存情况下服务端的一种响应。

      在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是客户端请求的资源,同时有一个Last-Modified的属性标记此文件在服务器端最后被修改的时间。客户端第二次请求此URL时,根据HTTP协议的规定,浏览器会向服务器传送If-Modified-Since报头,询问该时间之后文件是否有被修改过。两个时间戳的格式如下:

      Last-Modified:Last-Modified : Fri , 12 May 2006 18:53:33 GMT

      If-Modified-Since : Fri , 12 May 2006 18:53:33 GMT

      如果服务器端的资源没有变化,则自动返回 HTTP 304(Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

      对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,不会包含 Last Modified 信息,浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

如下两张图片,图一为浏览器无缓存的状态码,可以看出 status 全为 200。图二是浏览器中存在缓存时的状态码,可以看出全为 304。同时我们还可以比较二者页面的加载时间,时间位于最下面一行的Load Time,可以看出差距比较大,使用缓存可以节省好多时间。
在这里插入图片描述


图一



在这里插入图片描述


图二

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127626.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • uri与url的区别简单理解(uri和url有什么区别)

    一、URI<1>什么是URIURI,通一资源标志符(UniformResourceIdentifier,URI),表示的是web上每一种可用的资源,如HTML文档、图像、视频片段、程序等都由一个URI进行定位的。<2>URI的结构组成URI通常由三部分组成:①访问资源的命名机制;②存放资源的主机名;③资源自身的名称。<3>…

  • 新版大官场–男人是山

    新版大官场–男人是山一部官场小说,写的有点虚无缥缈,不够真实。[@more@]这本小说的写法有点发散,期间有些年份的跨度不够合理,中规中矩,闲时可看看。…

  • 自动化测试平台(八):列表组件公共化封装和用例项目管理功能开发

    自动化测试平台(八):列表组件公共化封装和用例项目管理功能开发上一章我们完成了整个用户管理模块的功能,能够正确的增、删、改、查用户。但其中有很多判断实际上是其他类似的模块也会有的,例如:1.创建用户后回到首页刷新列表;2.删除次页最后一条数据,回到前一页刷新列表;3.查询条件的格式化;—难道我们每写一个类似的模块,都要去写一遍这些重复的逻辑代码吗?显然是没必要的,所以我们需要将其抽离成公共列表组件提供给其他模块使用,避免大量的做重复的事情,并让代码更容易维护。本章还将完成用例项目管理功能,它主要用于管理不同类型(API、UI),不同项目

  • webstorm 2021激活码【永久激活】

    (webstorm 2021激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlML…

  • ubuntu/LinuxMint安装RabbitVCS

    ubuntu/LinuxMint安装RabbitVCS在windows下习惯了用tortoisesvn进行软件开发和管理,转到Linux下面,发现有一款和tortoisesvn极其相似的软件rabbitvcs,使用起来相当的顺手。安装过程有点折腾,可能和我用的linux发行版有关系吧。首先添加源,然后安装相应的软件包:$sudoadd-apt-repositoryppa:rabbitvcs/ppa$sudoapt-get

  • awk从放弃到入门(9):awk数组详解

    awk从放弃到入门(9):awk数组详解 这篇文章中的知识点是建立在前文的基础上的,如果你还没有掌握前文中的知识,请先参考之前的文章。注:在阅读这篇文章之前,最好已经了解了一些开发的基本语法,比如,for循环、数组的基本使用等,否则在阅读时有可能遇到障碍。 前文中提及过,awk其实可以算作一门脚本语言,因为它包含了一个脚本语言的各种语法结构,比如条件判断语句,比如循环语句,那么,awk中能否使用"数组"呢?必须能啊,今天我们就来聊聊…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号