随笔分类 - 浏览器
1
摘要:首先看一个restful风格的url: 传统的带有动词,restful风格只有名词 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用
阅读全文
摘要:1、概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下面我将依靠自己的经验,总结一下整个过程。如有错漏,欢迎指正。 阅读本文需要读者已有一定的计算机知识,了解TCP、DNS等。 2、分析 众所周知,打开一个网页的过
阅读全文
摘要:HTTP请求头格式 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 提示: 回车符 \r 换行符 \n 请求首行分析: 请求方式: GET 和 POST 方式: GET请求:地址栏访问、超链接访问都是ge
阅读全文
摘要:Cookie是由服务器端生成,发送给User-Agent,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器。 Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储w
阅读全文
摘要:一、XMLHttpRequest的发展历程 XMLHttpRequest一开始只是微软浏览器提供的一个接口,后来各大浏览器纷纷效仿也提供了这个接口,再后来W3C对它进行了标准化,提出了XMLHttpRequest标准。XMLHttpRequest标准又分为Level 1和Level 2。XMLHtt
阅读全文
摘要:HTTP内容编码和HTTP压缩的区别 HTTP压缩,在HTTP协议中,其实是内容编码的一种。 在http协议中,可以对内容(也就是body部分)进行编码, 可以采用gzip这样的编码。 从而达到压缩的目的。 也可以使用其他的编码把内容搅乱或加密,以此来防止未授权的第三方看到文档的内容。 所以我们说H
阅读全文
摘要:使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。由于CDN将内容推送到网络边缘,大量的用户访问被分散在网络边缘,不再构成网站出口、互联互通点的资源挤占,也不再需要跨越长距离
阅读全文
摘要:跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件
阅读全文
摘要:最近,需要对业务上的一些性能做一些优化,比如降低首屏时间、减少核心按钮可操作时间等的一些操作;在这之前,需要建立的就是数据监控的准线,也就是说一开始的页面首屏数据是怎样的,优化之后的数据是怎样,需要有一个对比效果。此时,performance 这个API就非常合适了。 window.onload =
阅读全文
摘要:应用缓存:是项目本身的缓存,比如一个js对象缓存的数据,或者状态管理机制如vuex和redux等进行应用数据存储,它们在页面刷新就会丢失。 离线缓存:应用在离线情况下也能快速访问的缓存资源,这里主要讲serviceWorker,大多数浏览器已经支持serviceWorker提供离线缓存。 本地缓存:
阅读全文
摘要:(function() { if(!window.localStorage) { console.log('当前浏览器不支持localStorage!') } var test = '0123456789'; var add = function(num) { num += num; if(num.
阅读全文
摘要:前言 如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是 JavaScript 中关键概念之一,是 JavaScript 难点之一。 理解执行上下文和执行栈同样有助于理解其他的 J
阅读全文
摘要:目录 完整的握手 当客户端和服务器端初次建立TLS握手时(例如浏览器访问HTTPS网站),需要双方建立一个完整的TLS连接,该过程为了保证数据的传输具有完整性和机密性,需要做很多事情,密钥协商出会话密钥,数字签名身份验证,消息验证码MAC等,整个握手阶段比较耗时的地方是密钥协商,需要密集的CPU处理
阅读全文
摘要:转自:https://www.zhihu.com/question/34074946 参考:https://www.jianshu.com/p/ff8f0bd78942 参考:https://www.cnblogs.com/lydialee/p/5227074.html 参考:https://www
阅读全文
摘要:一 前提: 1. 证书存在的目的就是避免中间人攻击,避免发生经典的传令兵问题。2. 证书都是由CA组织下认可的根证书Root签发的(其中有两种形式,第一种是该组织有一个Root,每一家的Root Ca都需要其签名,该方案基于利益考量几乎没人采用,而是第二种方案,每家都有自己的Root CA 可以自签
阅读全文
摘要:HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。 HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。 TCP
阅读全文
摘要:HTTP与TCP/IP区别? TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。 下面的图表试图显示不同的TCP/IP和其他的协议在最
阅读全文
摘要:#诞生背景DNS请求虽然占用了很少的带宽,但会有很高的延迟,尤其以移动网络会更加明显。通过dns预解析技术可以很好的降低延迟 在firefox上使用dns-prefetch,dns预解析是与页面加载是并行处理的,且不用影响到页面加载的性能. 在以图片为主移动网站被访问时,在使用DNS预解析的情意中下
阅读全文
摘要:参考1:https://coolshell.cn/articles/9666.html#comments 参考2:https://blog.fundebug.com/2019/01/03/understand-browser-rendering/ 思维导图 浏览器工作大流程 从上面这个图中,我们可以
阅读全文
摘要:一、前言 缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。
阅读全文
1