首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

web浏览器缓存机制_网站利用浏览器缓存

浏览器缓存机制之一(经典缓存) 因为在接手的项目中用到过比较新的HTML5应用缓存,也用到了经典的缓存如设置max-age,Etag之类,而之前一直就是在用着没有去深究其中原理。...我这里把浏览器缓存分为经典的浏览器缓存(以下简称为经典缓存)和HTML5应用缓存这两类。...其中Etag则对应请求头部中的If_None_Match(简写为INM),Last_Modified对应If_Modified_Since(简写为IMS).新的HTML5应用缓存则是支持离线存储文档,使得文档数据离线有效...Etag:web服务器响应请求时,返回Etag头部用来告知浏览器该文档在服务器的唯一标示。apache中Etag是对文件的Inode,大小以及最后修改时间mtime进行hash后得到。...If-None-Match(INM):当文档过期时,浏览器请求会带上INM头部,内容为Etag值。web服务器会比对Etag值并决定返回304还是200.

86720

Web浏览器缓存机制

Web浏览器缓存机制 Web缓存是存在服务器和客户端之前的资源副本。...Web缓存也就是HTTP缓存机制,是前端性能优化的重要措施,利用Web缓存可以: 减少数据冗余传输 减轻服务器请求压力 减少资源请求因为网络传输导致的时延,加快渲染速度 较少的数据传输可以减轻网络线路的传输瓶颈...资源过期并且存在Last-Modified声明,请求首部 If-Modified-Since获取Last-Mdodied的值发送到服务器和请求资源的修改时间比对,如果服务器资源修改过则返回资源主体和200状态码浏览器...浏览器将JS脚本资源和图片资源存储在内存缓存,css,xml文件存储的硬盘文件。 当浏览器刷新时,js,图片等资源直接从内存中加载,css文件需要重用从硬盘读取并解析渲染页面。...参考 HTTP 缓存 HTTP权威指南 Web缓存相关知识整理 彻底理解浏览器的缓存机制

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Web 应用安全性: 浏览器是如何工作的

这本系列的第一篇,先解释浏览器的功能以及执行方式。由于大多数客户将通过浏览器web 应用程序进行交互,因此必须了解这些出色程序的基础知识。...用户输入 web 地址(URL),浏览器获取文档并呈现它——唯一的区别是 lynx 不使用可视化渲染引擎,而是使用基于文本的界面,这使得像谷歌这样的网站看起来像这样: 我们大致了解浏览器的功能,但是让我们仔细看看这些机智的应用程序为我们所做的步骤...例如,Chrome 51 引入了 SameSite cookie,该功能允许 Web 应用程序摆脱称为 CSRF 的特定类型的漏洞(稍后将详细介绍)。...在开发web应用程序时,我们不仅需要确保它们在不同的浏览器中看起来是相同的,还需要确保我们的用户在不同的平台上受到相同的保护。 你的网络安全策略应根据浏览器供应商允许我们执行的操作而有所不同。...这很重要,因为在大多数情况下,不需要使用浏览器来测试Web应用程序的安全性,因为你可以简单的通过 curl 命令来查看响应信息。

58130

Safari浏览器正在杀死Web

iOS 对于浏览器的垄断 根据苹果 App Store 中发布的规定,“用于浏览网页的应用必须使用适当的 WebKit 框架与 WebKit JavaScript。”...以渐进式 Web 应用程序(PWA)为例,其目标是希望能让 Web 应用的使用体验无限接近于原生移动应用。...因为如果苹果老老实实推出所有支持功能,开发者就能构建起更好的 Web 应用,那到时候没人买原生应用了怎么办……苹果在 iOS App Store 中可是拥有 30% 的佣金抽成。...虽然我觉得苹果不会非常担心 Web 开发者能损害 App Store 的根本利益,但其中的种种负面可能性也确实不得不防。于是,苹果出于利益做出了选择,再把它强行解释成是在保护用户隐私。...而且如果苹果真的担心 API 影响用户隐私,就该用行动捍卫自己的观点、反击谷歌、拿出一套有竞争力的 Chrome 替代品。这可能不容易,但却是今后 Web 还能健康发展的唯一希望。

1K20

采用QWebEngineView引擎设计web浏览器

一、介绍 QWebEngineView 是QT5.4版本加入的新浏览器引擎,用于编辑、查看web内容。...web视图是Qt WebEngine,它是web浏览模块的主要小部件组件。它可以用于各种应用程序中,以实时显示来自Internet的web内容。...QWebEngineView可以使用load()函数将网站加载到web视图,GET方法始终用于加载URL,与所有Qt小部件一样,必须调用show()函数才能显示web视图,或者可以使用setUrl()加载网站...该小部件具有一个上下文菜单,可根据手头的元素进行定制,并包括在浏览器中有用的操作。对于自定义上下文菜单,或在菜单或工具栏中嵌入操作,可通过pageAction()使用单个操作。...设置页: 使网页成为web视图的新网页。 void setPage(QWebEnginePage *page) 13.

2.3K10

Web安全(一)---浏览器同源策略

文章目录 Web安全(一) --- 浏览器同源策略 #1 什么是浏览器同源策略 #1.1 什么是同源 ?...Indexed DB #1.2.2 DOM #1.2.3 异步请求 #2 跨域 #2.1 解决跨域的方法 #2.2 跨域资源共享(CORS) # CORS方法如何携带Cookie #2.3 Nginx反向代理 Web...安全(一) — 浏览器同源策略 #1 什么是浏览器同源策略 浏览器的同源策略一直是开发中经常遇到的问题,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能都会受到影响 #1.1...注:IE 未将端口号加入同源策略的组成部分之中 在浏览器中, 、、、等标签都可以跨域加载,而不受浏览器的同源策略的限制, 这些带src属性的标签每次加载的时候...,实际上都是浏览器发起一次GET请求, 不同于普通请求(XMLHTTPRequest)的是,通过src属性加载的资源,浏览器限制了JavaScript的权限,使其不能读写src加载返回的内容 浏览器同源策略中

3.9K30

使用 Beaker 浏览器浏览对等 Web

今天我将要介绍另一个这样的产品,名为 Beaker 浏览器,它的设计目标是浏览对等 Web。 image.png “对等 Web” 是什么?...根据 Beaker 浏览器的开发者之一的描述,“对等 Web 是一项实验性的技术 ……旨在提高我们掌控 Web 的能力。”...还有,他们说对等 Web 有三个主要原则:任何一点都可以成为服务器;多台计算机可以为同一个网站提供服务;没有后端。...从这些原则中你可以看出,对等 Web 的思想与 BitTorrent 很像,文件由多个对端做种,这些对端共同承担带宽负载。这减少了一个用户需要提供给他们的网站的总带宽。...image.png 对等 Web 另一个重要的方面是创作者对于他们自己的想法的控制能力。当今年代,平台都是由庞大的组织控制的,往往拿你的数据为他们所用。

60020

PythonSqlite 程序:浏览器应用还是桌面应用

考虑自己并不熟练的编程技术,他希望采用最简单的方法。因此,他决定使用 Python 和 SQLite 作为程序的基础,但对于如何构建程序的界面却感到迷茫。...他有两个选择:使用浏览器界面:据他所知,浏览器应用可以拥有非常出色的外观,并且有许多免费工具可以帮助构建 GUI。...使用桌面应用:他担心使用浏览器界面可能会受到用户浏览器设置的影响,进而导致应用出现问题。2、解决方案一位经验丰富的 Python 开发者提出了他的建议:首先,他不建议使用浏览器界面来构建桌面应用程序。...其次,使用网络技术来构建桌面 GUI 会为应用程序带来很多不必要的复杂性。用 HTML 和 CSS 创建用户界面既困难又耗时,而且还要处理与用户浏览器相关的问题。...然后我们显示窗口并运行应用程序。从上面总结来说,我们使用Python与SQLite结合可以用于开发各种类型的应用程序,从小型的个人项目大型的企业级应用都可以找到应用场景。

8710

从零实现的浏览器Web脚本

从零实现的浏览器Web脚本 在之前我们介绍了从零实现Chrome扩展,而实际上浏览器级别的扩展整体架构非常复杂,尽管当前有统一规范但不同浏览器的具体实现不尽相同,并且成为开发者并上架Chrome应用商店需要支付...5$的注册费,如果我们只是希望在Web页面中进行一些轻量级的脚本编写,使用浏览器扩展级别的能力会显得成本略高,所以在本文我们主要探讨浏览器Web级别的轻量级脚本实现。...脚本管理器实际上依然是基于浏览器扩展来实现的,通过封装浏览器扩展的能力,将部分能力以API的形式暴露出来,并且提供给用户脚本权限来应用这些API能力,实际上这其中涉及很多非常有意思的实现,例如脚本中可以访问的...那么本文还是主要关注于应用,我们从最基本的UserScript脚本相关能力,使用Rollup来构建脚本,再通过实例来探索脚本的实现来展开本文的讨论。...当然其本身的能力也是源自于浏览器拓展,而如何将浏览器扩展的这个能力暴露给Web页面就是需要考量的问题了。

53050

Web 游戏监听浏览器返回点击事件 !

引用场景 做 web 游戏时,通常游戏是嵌入 app 内部,通过 app 内部入口,跳转进入所开发的 web 游戏,app 内会预留返回功能,web 游戏可以使用 webview 自带的返回...事件监听 当浏览器活动历时记录条目更改时,将触发 popstate 事件,如用户点击浏览器的回退按钮,或者在 javascript 代码中调用 history.back() 或者 history.forward...,这时候点击返回,还是会继续回到之前页面,所以需要添加一个新的状态,让浏览器不跳转到前一个页面,就需要用到 history.pushState() 方法。...history.pushState() 方法,是向当前浏览器会话的历史堆栈中添加一个状态 (state) ,添加以后,点击浏览器的返回,会消耗掉会话历史堆栈中栈顶的状态,也就是我们注册的最新的状态。...像上述场景,就需要整体控制事件的添加和注册,每次添加事件和注册回调,放置一个堆栈顶部,当事件触发时,从栈顶取出最新的一个,进行回调就行。

1.8K10

浏览器缓存知识小结及应用

浏览器缓存基本认识 2. 强缓存的原理 3. 强缓存的管理 4. 强缓存的应用 5. 协商缓存的原理 6. 协商缓存的管理 7....浏览器行为对缓存的影响 浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可避免的一大问题,所以在产品开发的时候我们总是想办法避免缓存产生,...了解浏览器的缓存命中原理,是开发web应用的基础,本文着眼于此,学习浏览器缓存的相关知识,总结缓存避免和缓存管理的方法,结合具体的场景说明缓存的相关问题。希望能对有需要的人有所帮助。 1....强缓存的管理 前面介绍的是强缓存的原理,在实际应用中我们会碰到需要强缓存的场景和不需要强缓存的场景,通常有2种方式来设置是否启用强缓存: 1)通过代码的方式,在web服务器返回的响应中添加Expires...协商缓存的管理 协商缓存跟强缓存不一样,强缓存不发请求服务器,所以有时候资源更新了浏览器还不知道,但是协商缓存会发请求服务器,所以资源是否更新,服务器肯定知道。

67530
领券