基于HTTP浏览器缓存机制全面解析看Table表格的css样式代码详解
文章来源: 学习通http://www.bdgxy.com/
普学网http://www.boxinghulanban.cn/
智学网http://www.jaxp.net/
漂亮的table表格样式css源码漂亮的table表格样式
源码
<head> <title></title><style type="text/css">table{border-collapse: collapse;margin: 0 auto;text-align: center;}table td, table th{border: 1px solid #cad9ea;color: #666;height: 30px;}table thead th{background-color: #CCE8EB;width: 100px;}table tr:nth-child(odd){background: #fff;}table tr:nth-child(even){background: #F5FAFA;}</style>
</head>
<body> <table width="90%" class="table"><caption><h2>车间能源消耗比例</h2></caption><thead><tr><th>车间</th><th>产量</th><th>电量</th><th>单耗</th></tr></thead><tr><td>109</td><td>13</td><td>1.34</td><td>213</td></tr><tr><td>109</td><td>13</td><td>1.34</td><td>213</td></tr><tr><td>109</td><td>13</td><td>1.34</td><td>213</td></tr><tr><td>109</td><td>13</td><td>1.34</td><td>213</td></tr><tr><td>109</td><td>13</td><td>1.34</td><td>213</td></tr><tr><td>109</td><td>13</td>文章来源: [学习通](http://www.bdgxy.com/)http://www.bdgxy.com/[普学网](http://www.boxinghulanban.cn/)http://www.boxinghulanban.cn/
[智学网](http://www.jaxp.net/)http://www.jaxp.net/
目录
什么是浏览器缓存
非HTTP协议定义的缓存机制
缓存流程图
HTTP缓存机制
服务端如何判断缓存已失效
Last-Modified/If-Modified-Since
Etag/If-None-Match
为什么有了Last-Modified还要Etag?
200 OK(from cache)与304 Not Modified的区别
200 OK( from cache ) 出现操作:
304 Not Modified 出现操作:
缓存的不同来源
不能被缓存的请求
什么是浏览器缓存
Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本。缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。 比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。 只有当网站明确标识资源已经更新,浏览器才会再次下载网页。浏览器和网站服务器是根据缓存机制进行缓存的
非HTTP协议定义的缓存机制
浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的节点中加入标签
<meta http-equiv="Pragma" content="no-cache">
上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。
缓存流程图
利用浏览器缓存的过程:
HTTP缓存机制
根据Response Header里面的Cache-Control和Expires这两个属性,当两个都存在时,Cache-Control优先级较高。
Cache-Control
该字段用于控制浏览器在什么情况下直接使用本地缓存而不向服务器发送请求。一般具有以下值:
Public
:指示响应可被任何缓存区缓存。Private
:指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。no-cache
:指示请求或响应消息不能缓存。no-store
:用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。max-age
:指示浏览器可以接收生存期不大于指定时间(以秒为单位)的响应。min-fresh
:指示浏览器可以接收响应时间小于当前时间加上指定时间的响应。max-stale
:指示浏览器可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么浏览器可以接收超出超时期指定值之内的响应消息。
Expires(石器时代的缓存机制)
Expires 头部字段提供一个日期和时间,在该日期前的所有对该资源的请求都会直接使用浏览器缓存而不用向服务器请求。
例如:Expires: Sun, 08 Nov 2009 03:37:26 GMT
注意:
- cache-control max-age 和 max-stale将覆盖Expires header。
- 使用Expires存在服务器端时间和浏览器时间不一致的问题。
- 另外有人说Expires 是HTTP 1.0的东西,现在默认浏览器均默认使用HTTP 1.1。
服务端如何判断缓存已失效
服务端通过If-Modified-Since(Last-Modified)和If-None-Match(Etag)这两个属性的值来判断缓存是否失效的。
Last-Modified/If-Modified-Since
Last-Modified/If-Modified-Since要配合Cache-Control使用。Last-Modified
:响应资源的最后修改时间。If-Modified-Since
:当缓存过期时,发现资源具有Last-Modified声明,则在请求头带上If-Modified-Since(值就是Last-Modified)。服务器收到请求后发现有头If-Modified-Since则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应HTTP 200整片资源内容(写在响应消息包体内);若最后修改时间较旧,说明资源无新修改,则响应HTTP 304,告知浏览器继续使用所保存的cache。
Etag/If-None-Match
Etag/If-None-Match也要配合Cache-Control使用。Etag
:资源在服务器的唯一标识(生成规则由服务器决定)。Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。If-None-Match
:当缓存过期时,发现资源具有Etage声明,则在请求头带上If-None-Match(值就是Etag)。服务器收到请求后发现有头If-None-Match 则与被请求资源的相应校验串进行比对,决定返回200或304。
为什么有了Last-Modified还要Etag?
Etag的出现主要是为了解决几个Last-Modified比较难解决的问题:
- Last-Modified标注的最后修改只能精确到秒级,如果某些文件在1秒钟以内,被修改多次的话,它将不能准确标注文件的修改时间。
- 如果某些文件会被定期生成,当有时内容并没有任何变化,但Last-Modified却改变了,导致文件没法使用缓存。
- 有可能存在服务器没有准确获取文件修改时间,或者与代理服务器时间不一致等情形。
200 OK(from cache)与304 Not Modified的区别
200 OK( from cache )不向服务器发送请求,直接使用本地缓存文件。304 Not Modified则向服务器询问,若服务器认为浏览器的缓存版本还可用,那么便会返回304。
200 OK( from cache ) 出现操作:
1.地址栏回车 2.页面链接跳转 3.前进、后退
304 Not Modified 出现操作:
1.F5刷新 2.新开窗口
缓存的不同来源
from disk cache
:从磁盘中获取缓存资源,等待下次访问时不需要重新下载资源,而直接从磁盘中获取。它的直接操作对象为CurlCacheManager。from memory cache
:从内存中获取资源,等待下次访问时不需要重新下载资源,而直接从内存中获取。 两者区别:当退出进程时,内存中的数据会被清空,而磁盘的数据不会,所以,当下次再进入该进程时,该进程仍可以从diskCache中获得数据,而memoryCache则不行。
不能被缓存的请求
当然并不是所有请求都能被缓存。 无法被浏览器缓存的请求:
- HTTP信息头中包含Cache-Control:no-cache,pragma:no-cache(HTTP1.0),或Cache-Control:max-age=0等告诉浏览器不用缓存的请求
- 需要根据Cookie,认证信息等决定输入内容的动态请求是不能被缓存的
- 经过HTTPS安全加密的请求
- POST请求无法被缓存
- HTTP响应头中不包含Last-Modified/Etag,也不包含Cache-Control/Expires的请求无法被缓存
以上为个人经验,希望能给大家一个参考,也希望大家多多支持菜鸟教程https://www.piaodoo.com/。
<td>1.34</td>CSS/HTML<td>213</td></tr>
</table>
</body>
</html>
到此这篇关于推荐一个好看Table表格的css样式代码详解的文章就介绍到这了,更多相关推荐一个好看Table表格的css样式内容请搜索菜鸟教程https://www.piaodoo.com/以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程https://www.piaodoo.com/!
CSS/HTML
基于HTTP浏览器缓存机制全面解析看Table表格的css样式代码详解相关推荐
- WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)
WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 目录 WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 概述 HTTP解析 HTTP请求头 HTTP响应头 H ...
- 浏览器缓存机制的研究分享
源宝导读:互联网Web应用大行其道的今天,浏览器已经成为Web应用运行的重要平台.而Web应用对浏览器缓存机制的高效利用,可以大幅提升应用性能和用户体验.本文将对浏览器缓存机制进行系统化的梳理,分享我 ...
- 聊一聊浏览器缓存机制
相信很多前端童鞋对于浏览器缓存都不太陌生,但是如果没有系统的归纳总结,可能三言两句很难说明白.如何才能完美的回答,这是一个值得思考的问题. 当然,我们不能为了应对面试才去掌握,而应该当作技能储备起来, ...
- 浏览器缓存机制(吴秦(Tyler) )
浏览器缓存机制 为尊重原作者 请连接到吴秦博客http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html 浏览器缓存机制 浏览器缓存机制 ...
- 【一文就够】浏览器缓存机制详细知识点梳理
浏览器缓存机制详细知识点梳理 在前端的性能优化中,浏览器缓存是很重要的一环.比如在页面前进或者后退,发现丝毫不卡顿很流畅,就是缓存机制的力量. 一.什么是缓存 浏览器缓存Brower Caching是 ...
- 浏览器缓存机制学习总结
浏览器缓存机制学习总结 最近在做一个考试系统时,由于经常加载试卷或图片等等静态资源,抽空学习了一下缓存机制,在此记录 为什么要使用缓存 1.通过HTTP协议,在客户端和浏览器建立连接时需要消耗时间,而 ...
- 浏览器缓存机制(优化)
浏览器缓存机制 缓存可以说是性能优化中简单⾼效的⼀种优化⽅式了,它可以显著减少⽹络传输所带来的损耗. 对于⼀个数据请求来说,可以分为发起⽹络请求.后端处理.浏览器响应三个步骤.浏览 器缓存可以帮助我们 ...
- 【转】浏览器缓存机制
最近在做页面分析的时候发现页面F5刷新时,大部分原来已经缓存的内容的状态变成了304,很是不解,原来想好好看看是什么原因的.结果发现园里已经有人分析的很彻底了. 原文地址:浏览器缓存机制 浏览器缓存机 ...
- 浏览器会不会缓存html,浏览器缓存机制(一)
浏览器缓存机制之一(经典缓存) 因为在接手的项目中用到过比较新的HTML5应用缓存,也用到了经典的缓存如设置max-age,Etag之类,而之前一直就是在用着没有去深究其中原理.周末天气不好,懒得出去 ...
最新文章
- PHP 自定义session储存 数据库 方式类 高洛峰 细说PHP
- 服务器03系统怎么设置网站,Windows 2003系统路由服务的配置方法
- 最小连通-(代码、分析、汇编)
- 算法- 分治算法(实现汉诺塔)
- ORACLE数据库的连接
- Android BroadcastReceiver(一)
- Emacs下使用Stardict
- virtuoso配合calibre进行电路后仿真
- Python编程求100内的所有素数(详解版)
- 基于微信小程序的投票系统源码
- android 模拟器后缀名,apk是什么文件?apk文件模拟器是什么?
- 华为U8500在USB调试模式下LOGCAT无打印信息的解决方法
- 程序员月薪3万?2020年12月程序员平均薪资14222元,招聘近40万人!
- 7月26日 select单表查询基础语句
- android12.0(S) 通知栏不显示闹钟和静音图标 bug
- 写代码实现堆溢出、栈溢出、永久代溢出、直接内存溢出
- 试验数据管理平台解决方案--MDM
- 你必须要了解的8种数据分析思维
- 智慧海派跟鸿蒙系统,上海百余家文旅场馆点亮“海派夜经济”
- 【学习笔记】Ubuntu双系统+搭建个人服务器
热门文章
- java jmx连接_使用JMX连接JVM
- 公安审讯室温湿度万年历字符视频叠加
- Kaiming He论文阅读笔记二——Plain Vision Transformer Backbones for Object Detection
- Hbase 删除表数据
- String之contains方法
- “2021年中国种业十件大事”发布 国稻种芯百团计划行动
- python urllib2.request_Python自动化测试 (九)urllib2 发送HTTP Request
- AutoCAD C# 交互式选择两点构成框
- 仿照美团用并查集实现迷宫
- 美柚广告投放的优势!美柚广告推广合作找哪里?