
Web性能/浏览器
Cacra
编程路上在探索。
展开
-
《构建高性能Web站点》第二章 数据的网络传输
那么,你了解数据在网络传输中的一些原理和动机吗?比如存储转发、流量控制、带宽和响应时间等,通常它们看似顺理成章,因为大多数开发者生活在应用层,这些似乎与他们毫无关系,然而一旦当你开始将注意力转向站点性能时,这些基础知识便是你不能不知道的。1.分层网络模型应用层、传输层、网络层、数据链路层、物理层。五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层...原创 2019-02-04 00:26:55 · 373 阅读 · 0 评论 -
《构建高性能Web站点》第一章 绪论
1.网络上数据传输时间主要可以分为三个部分:1.数据在网络上传输的时间(来回两个过程)2.站点服务器处理请求并生成回应数据的时间3.浏览器本地计算和渲染的时间2.带宽、吞吐率带宽是指信道的理论最大数据传输速率,单位也为Mbps;每秒处理请求数,也称吞吐率,吞吐率不是指单位时间处理的数据量,而是请求数。带宽是说的是最大值速率,吞吐量说的是某时刻速率。但吞吐量不能超过最大速率。影响服...原创 2019-02-03 13:09:55 · 230 阅读 · 0 评论 -
《构建高性能Web站点》第四章 动态内容缓存
Web站点更多的是提供动态内容,比如动态网页、动态图片、Web服务等,它们通常在Web服务器端进行计算,生成HTML,并返回给用户。与此同时,它们在生成HTML的过程中,不可避免涉及了更多的CPU计算和I/O操作,这已经超出了Web服务器本身,比如访问数据库涉及数据库服务器的CPU计算和磁盘I/O操作,以及与数据库服务器通信的网络I/O操作,同样的情况也发生在调用Web API,比如通过twitt...原创 2019-02-06 17:40:36 · 199 阅读 · 0 评论 -
《构建高性能Web站点》第五章 第六章 第七章
1.opcode缓存PHP、Ruby、Python,它们都属于解释型语言,所以用它们编写的动态内容都需要依赖相应的解释器程序来运行。解释器程序也是一个二进制可执行文件,比如/bin/ruby,它同样可以直接在进程中运行,在运行过程中,解释器程序需要对输入的脚本代码进行分析,领会它们的旨意,然后执行它们。编译型语言和解释型语言:https://blog.youkuaiyun.com/u014647208...原创 2019-02-06 22:57:59 · 141 阅读 · 0 评论 -
《构建高性能Web站点》第八章 第九章 第十章
第八章 反向代理缓存 第九章 Web组件分离 第十章 分布式缓存第八章 反向代理缓存1.传统代理很久以前,我们通常需要通过代理服务器来访问互联网上的Web站点,代理服务器本身接入了互联网,而我们通过内部网络与代理服务器相连。即便是现在,有些时候为了访问一些由于某种原因无法直接访问的站点,我们也会通过特定的代理服务器,绕过某些限制来访问目标站点。现在,我们普遍已经不使用代理服务器了,当我们的...原创 2019-02-08 09:43:59 · 168 阅读 · 0 评论 -
浏览器内核、JavaScript 引擎、页面渲染原理、页面优化
可以参考:https://www.zybuluo.com/yangfch3/note/671516写的真是太好了,可直接看,我就不去摘录了。原创 2019-02-09 11:06:56 · 315 阅读 · 0 评论 -
回流(reflow)和重绘(repaint)以及两者的区别
1.总结reflow(回流):对DOM树进行渲染,只要修改DOM或修改元素的形状大小,就会触发reflow。display显示/隐藏元素,显示时占据空间,隐藏时元素不占据空间,隐藏前后dom结构有发生变化,需要重新渲染。visibility显示/隐藏元素,显示时占据空间,隐藏时元素占据空间,隐藏前后dom结构未发生变化,不需要重新渲染。单纯改变字体颜色,背景只需要repaint(重绘),不...原创 2019-04-05 20:53:56 · 4984 阅读 · 3 评论 -
HTTP缓存机制及原理(强制缓存/协商缓存)
可以参考文章:https://www.imooc.com/article/267319#comment主要感觉里面的图很好。强制缓存(Expires/Cache-Control):协商缓存:1.Last-Modified和If-Modified-Since2.Etag和If-None-Match...原创 2019-04-05 21:16:54 · 1009 阅读 · 0 评论 -
Cookie,LocalStorage和SessionStorage的区别
总结:1.cookie由服务端生成,用于标识用户身份;而两个storage用于浏览器端缓存数据2.三者都是键值对的集合3.一般情况下浏览器端不会修改cookie,但会频繁操作两个storage4.如果保存了cookie的话,http请求中一定会带上;而两个storage可以由脚本选择性的提交5. 会话的storage会在会话结束后销毁;而local的那个会永久保存直到覆盖。cookie...原创 2019-08-08 09:03:00 · 237 阅读 · 0 评论